Qt圖形界面編程入門(創建一個簡單的程序)

1,手工編碼方式

利用手工編碼方式建立“Hello Qt!”程序

第一步:

?

得到界面

2,無UI的向導方式

?

從圖中,我們發現向導為窗口程序提供了3個基類,分別外QMainWindow、QWidget、QDialog,3個基類的區別如下:

QMainWindow類:提供一個有菜單欄、工具欄和一個狀態欄的應用窗口模式

QWidget類:是所有用戶界面對象的基類。它從窗口系統接收鼠標、鍵盤和其他事件,并且在屏幕上繪制增加。

QDialog類:是對話窗口的基類。對話框窗口的主要用于短期任務以及和用戶進行簡要通信的頂級窗口

工程建立完畢后,有4個文件。其中頭文件dialog.h和源文件dialog.cpp共同實現了僅屬于本項目的對話框類Dialog。類Dialog派生自Qt的基本對話框類QDialog。

3,Qt設計器方式

借助Qt設計器(Qt Designer)可以以所見即所得的方式構件GUI程序。

?

(1)設計區:就是正中間的部分,主要用來布置各個窗口部件。

(2)部件列表窗:這里分類羅列了各種常用的標準部件,可以使用鼠標將這些部件
拖人主設計區中,放到主設計區的界面上。

(3)對象查看器:這里列出了界面上所有部件的對象名稱和父類,而且以樹形結構
顯示了各個部件的所屬關系。可以在這里單擊對象來選中某個部件。

(4)屬性編輯器:這里顯示了各個部件的常用屬性信息,可以在這里更改部件的-
些屬性,如大小、位置等。這些屬性按照從祖先繼承的屬性、從父類繼承的屬性和自己的
屬性的順序進行了分類。

(5) Action(動作)編輯器、信號和槽編輯器:這些和菜單命令、控件事件響應等相關,
放到以后使用時再介紹。

(6)常用功能工具欄:該工具欄中前4個按鈕用于進人相應的模式,分別是窗口部件編輯模式(這是默認模式)、信號/槽編輯模式、伙伴編輯模式和Tab順序編輯模式。后面幾個按鈕用來實現添加布局管理器以及調整控件大小等功能。

第2步,在對話框中添加控件。

從部件列表窗中拖曳一個Label(標簽)到主窗體中,可以在標簽屬性編輯器中修改字體、對齊方式等屬性

?

?

生成編譯結構的文件,根據自己的路徑來尋找ui_dialog

/********************************************************************************
** Form generated from reading UI file 'dialog.ui'
**
** Created by: Qt User Interface Compiler version 5.3.1
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/#ifndef UI_DIALOG_H
#define UI_DIALOG_H#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDialog>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QLabel>QT_BEGIN_NAMESPACEclass Ui_Dialog
{
public:QLabel *label;void setupUi(QDialog *Dialog){if (Dialog->objectName().isEmpty())Dialog->setObjectName(QStringLiteral("Dialog"));Dialog->resize(400, 300);label = new QLabel(Dialog);label->setObjectName(QStringLiteral("label"));label->setGeometry(QRect(170, 140, 111, 51));retranslateUi(Dialog);QMetaObject::connectSlotsByName(Dialog);} // setupUivoid retranslateUi(QDialog *Dialog){Dialog->setWindowTitle(QApplication::translate("Dialog", "Dialog", 0));Dialog->setProperty("label", QVariant(QString()));
#ifndef QT_NO_ACCESSIBILITYlabel->setAccessibleName(QString());
#endif // QT_NO_ACCESSIBILITY
#ifndef QT_NO_ACCESSIBILITYlabel->setAccessibleDescription(QString());
#endif // QT_NO_ACCESSIBILITYlabel->setText(QApplication::translate("Dialog", "Hello Qt!", 0));} // retranslateUi};namespace Ui {class Dialog: public Ui_Dialog {};
} // namespace UiQT_END_NAMESPACE#endif // UI_DIALOG_H

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/534327.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/534327.shtml
英文地址,請注明出處:http://en.pswp.cn/news/534327.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux基礎(Vim編輯器與Shell命令腳本)

1、Vim文本編輯器 Vim文本編輯器有三種模式 命令模型&#xff1a;控制光標移動&#xff0c;可對文本進行復制、粘貼、刪除和查找得等工作。 輸入模式&#xff1a;正常的文本錄入 末行模式&#xff1a;保存或退出文檔&#xff0c;以及設置編輯環境。 在每次運行Vim編輯器時&…

Python二級筆記(16)

知識點&#xff1a; 1&#xff0c;進程調度僅負責對CPU進行分配 2&#xff0c;帶鏈的隊列是采用鏈式存儲結構表示的隊列。鏈式存儲的存儲單元是不連續的&#xff0c;因為是不連續的存儲空間&#xff0c;所以指針將不會有規律的地連續變化。當front rear NULL時&#xff0c;…

Python二級筆記(17)

操作題&#xff1a; 1&#xff0c;接收用戶輸入的一個浮點數&#xff0c;輸出這個浮點數的小數部分各字符的和&#xff0c;以10為寬度,靠右顯示&#xff0c;,采用星號*填充。 代碼&#xff1a; s input("請輸入一個小數&#xff1a;") s s[::1] cs () for c in…

Python二級筆記(18,19合集操作篇)

操作題&#xff1a; 1&#xff0c;鍵盤輸入正整數n,按要求把n輸出到屏幕&#xff0c;格式要求&#xff1a;寬度為25個字符&#xff0c;等號字符&#xff08;&#xff09;填充&#xff0c;右對齊&#xff0c;帶千位分隔符。如果輸入正整數超過25位&#xff0c;則按照真實長度輸…

Qt圖形界面編程入門(信號和槽通信機制)

信號和槽機制是Qt的核心機制&#xff0c;可以讓編程人員將互不相關的對象綁定在一起&#xff0c;實現對象之間的通信。 聲明了信號的對象&#xff0c;當其狀態改變時&#xff0c;信號就由該對象發送出去&#xff0c;而且該對象只負責發送信號&#xff0c;它不知道另一端是誰在…

Python二級筆記(18,19合集知識點篇)

知識點&#xff1a; 1&#xff0c;軟件測試的目的是發現程序中的錯誤。調試是作為成功測試的后過而出現的步驟&#xff0c;也就是&#xff0c;調試是在測試發現錯誤之后排除錯誤的過程。軟件調試的任務是診斷和改成程序中的錯誤。 2&#xff0c;深度等于控制的層數 3&#x…

軟件工程(成本/效益分析)

一般說來&#xff0c;人們投資于一項事業的目的是為了在將來得到更大的好處。開發一個軟件系統也是一種投資&#xff0c;期望將來獲得更大的經濟效益&#xff0c;經濟效益通常表現為減少運行費用或增加收入。但是&#xff0c;投資開發新系統往往需要冒一定的風險。系統的開發成…

Linux基礎(用戶身份和文件權限)

用戶身份與能力 Linux是一個多用戶、多任務的操作系統&#xff0c;具有很好的穩定性與安全性&#xff0c;在幕后保障Linux系統安全則是一系列復雜的配置工作。 Linux系統的管理員之所以是root&#xff0c;并不是因為它的名字叫root&#xff0c;而是因為該用戶的身份號碼即UID…

Centos 8 RHEL 8 破解root密碼

https://blog.csdn.net/u014042047/article/details/107309890/

TensorFlow實驗(1)

實驗1-2 搭建深度學習開發環境 1&#xff09;安裝Anaconda 2&#xff09;創建虛擬環境&#xff1a; 3&#xff09;激活環境 4&#xff09;安裝tensorflow 5)安裝jupyter notebook 安裝完成之后&#xff0c;運行第一個程序“Hello,World” 要求&#xff1a;詳細安裝步驟&…

TensorFlow實驗(2)

實驗3-4 數據結構-張量 1&#xff09;已知兩個張量[1,3,5,7]和[2,4,4,8],編寫一個模型&#xff0c;計算兩個張量的加法&#xff0c;輸出結果&#xff0c;并在tensorboard中顯示 2&#xff09;已知張量[1,2,3,4,5,6,7,8,9,10,11,12]有12個元素&#xff0c;利用tf.reshape()將其…

Linux基礎(文件權限續篇)

文件的特殊權限 在復雜多變的生產環境中&#xff0c;單純設置文件的rwx權限無法滿足我們對安全和靈活性的需求&#xff0c;因此便有了SUID,SGID,SBIT的特殊權限位。這是一種對文件權限進行設置的特殊功能&#xff0c;可以與一般權限同時使用&#xff0c;以彌補一般權限不能實現…

Linux基礎(存儲結構和磁盤劃分)

一切從“/”開始 在Linux系統中&#xff0c;目錄、字符設備、塊設備、套接字、打印機等都被抽象成了文件&#xff0c;一切皆為件 與windows操作系統不同&#xff0c;Linux系統內不存在C/D/E/F盤等&#xff0c;一切文件都是從根&#xff08;/&#xff09;目錄開始的 Linux系統…

軟件工程(需求分析)

需求分析 為了開發出真正滿足用戶需求的軟件產品&#xff0c;首先必須知道用戶的需求。對軟件需求的深人理解是軟件開發工作獲得成功的前提條件&#xff0c;不論人們把設計和編碼工作做得如何出色,不能真正滿足用戶需求的程序只會令用戶失望.給開發者帶來煩惱。 需求分析是軟…

TensorFlow構建二維數據擬合模型(1)

知識圖譜 TensorFlow運行機制 TensorFlow是基于計算圖的深度學習編程模型 Tensor表示張量&#xff0c;其實質上是某種類型的多維數組 Flow表示基于數據流圖的計算&#xff0c;實質上是張量在不同節點間的轉化過程。 在TensorFlow中&#xff0c;計算圖中的節點稱為OP&…

Qt圖形界面編程入門(標簽與槽機制習題分享)

標簽對象初始顯示0&#xff0c;每次單擊標簽對象后&#xff0c;其顯示內容就加1&#xff0c;依次變為1、2、3等。 #ifndef DIALOG_H #define DIALOG_H#include <QDialog> #include <QPushButton> //包含命令按鈕類 #include "MyLabel.h"class Dialo…

js中執行到一個if就停止的代碼_Node 中如何引入一個模塊及其細節

在 node 環境中&#xff0c;有兩個內置的全局變量無需引入即可直接使用&#xff0c;并且無處不見&#xff0c;它們構成了 nodejs 的模塊體系: module 與 require。以下是一個簡單的示例const fs require(fs)const add (x, y) > x ymodule.exports add雖然它們在平常使用…

二級MS Office公共基礎知識錯題本(1)

1&#xff0c;順序程序具有順序性、封閉性和可再現性的特點&#xff0c;不具備并發性 2&#xff0c;為了降低算法的空間復雜度&#xff0c;主要應減少輸入數據所占的存儲空間以及額外空間&#xff0c;通常采用壓編存儲技術。 3&#xff0c;樹的總的結點數為樹中所有結點的度數…

c++ file* 句柄泄漏_C++核心指南:P.8 勿泄漏任務資源

P.8: 勿泄漏任務資源原因隨著時間的推移&#xff0c;即使是資源的緩慢增長也會耗盡這些資源的可用性&#xff0c;這對于長時間運行的程序特別重要&#xff0c;但也是負責任的編程行為的基本部分。糟糕的例子void f(char* name){ FILE* input fopen(name, "r"); // .…

數據規范化、實體-聯系圖、狀態轉換圖、層次方框圖、Warnier圖、IPO圖及驗證軟件需求

數據規范化 軟件系統經常使用各種長期保存的信息&#xff0c;這些信息通常以一定方式組織并存儲在數據庫或文件中&#xff0c;為減少數據冗余&#xff0c;避免出現插入異常或刪除異常&#xff0c;簡化修改數據的過程,通常需要把數據結構規范化。 通常用“范式(normal forms)”…