欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報激活碼778899分享:QT 控件使用案例

柚子快報激活碼778899分享:QT 控件使用案例

http://yzkb.51969.com/

常用控件

表單 按鈕

Push Button 命令按鈕。Tool Button:工具按鈕。Radio Button:單選按鈕。Check Box:復(fù)選框按鈕。Command Link Button:命令鏈接按鈕。Dialog Button Box:按鈕盒。 容器組控件(Containers)

Group Box:組合框。Scroll Area:滾動區(qū)域。Tool Box:工具箱。Tab Widget:標(biāo)簽小部件。Stacked Widget:堆疊部件。Frame:框架。Dock Widget:停靠窗體部件。 Item View控件(Item Views)

List View:清單視圖。Tree View:樹視圖。Table View:表視圖。Column View:列視圖。Undo View:撤銷視圖。 Input Widgets控件(Input Widgets)

List Widget:清單控件。Tree Widget:樹控件。Table Widget:表控件。 Input Widgets控件(Input Widgets)

Combo Box:組合框Font Combo Box:字體組合框Line Edit:行編輯框Text Edit:文本編輯框Plain Text Edit:純文本編輯框Spin Box:數(shù)值框Double Spin Box:雙精度數(shù)值框Date Edit:日期編輯框Time Edit:時間編輯框DateTime Edit:日期時間編輯框Dial:撥號盤Horizonal Slider Bar: 水平滑動條Vertical Slider Bar: 垂直滑動條Horizontal Slider: 水平滑塊Vertical Slider: 垂直滑塊File Dialog:文件對話框Key Sequence Edit:快捷鍵編輯框 Display Widgets: 顯示控件

Label:標(biāo)簽Text Browser:文本瀏覽器Graphics View:圖形視圖Calendar Widget:日歷控件LCD Number:LCD數(shù)字Progress Bar:進(jìn)度條Status Bar:狀態(tài)欄Horizontal Line : 水平線Vertical Line : 垂直線OpenGl Widget : OpenGL控件QQuickWidget : Qt Quick控件

常用控件

Vertical Layout:垂直布局。

Horizontal Layout:橫向(水平)布局。

Grid Layout:網(wǎng)格(柵格)布局。

Form Layout:表單布局。

Horizontal Spacer:水平間隔。

Vertical Spacer:垂直間隔。

表單

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //命令按鈕控制頭文件

#include //顯示標(biāo)簽頭文件

#include //網(wǎng)格布局頭文件

#include

#include

class MainWindow : public QMainWindow

{

Q_OBJECT 使用 Q_OBJECT 宏聲明這是一個 QObject 派生類,啟用 Qt 的元對象系統(tǒng)

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

QGridLayout *gridLayout; //網(wǎng)格布局對象

QPushButton *button1;

QPushButton *button2;

QPushButton *button3;

QPushButton *button4;

};

#endif // MAINWINDOW_H

源文件:

#include "mainwindow.h"

# if 0

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

// 創(chuàng)建一個中心窗口部件

QWidget *centralWidget = new QWidget(this);

setCentralWidget(centralWidget);

// 創(chuàng)建一個柵格布局

QGridLayout *gridLayout = new QGridLayout(centralWidget);

gridLayout->setContentsMargins(10,10,10,10);//設(shè)置邊距

gridLayout->setSpacing(10);//設(shè)置間距

//設(shè)置按鈕

button1= new QPushButton("按鈕1", this);

button1->setFixedHeight(50);//設(shè)置按鈕高度

button1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//設(shè)置按鈕大小策略

button2= new QPushButton("按鈕2", this);

button2->setFixedWidth(50);//設(shè)置按鈕寬度

button2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//設(shè)置按鈕大小策略

button3= new QPushButton("按鈕3", this);

button3->setFixedHeight(50);//設(shè)置按鈕高度

button3->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//設(shè)置按鈕大小策略

button4= new QPushButton("按鈕4", this);

button4->setFixedWidth(50);//設(shè)置按鈕寬度

button4->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);//設(shè)置按鈕大小策略

//@param parent 對象

//@param row 行號

//@param column 列號

//@param rowSpan 跨行數(shù)

//@param columnSpan 跨列數(shù)

//@param alignment 對齊方式

gridLayout->addWidget(button1,0,1,1,1);//設(shè)置按鈕在網(wǎng)格布局的位置

gridLayout->addWidget(button2,0,0,3,1);//設(shè)置按鈕在網(wǎng)格布局的位置

gridLayout->addWidget(button3,2,1,1,2);//設(shè)置按鈕在網(wǎng)格布局的位置

gridLayout->addWidget(button4,1,1,1,1);//設(shè)置按鈕在網(wǎng)格布局的位置

setLayout(gridLayout);

}

MainWindow::~MainWindow() {}

#endif

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

// 創(chuàng)建一個中心窗口部件

QWidget *centralWidget = new QWidget(this);

setCentralWidget(centralWidget);

//創(chuàng)建一個表單布局

QFormLayout *formLayout = new QFormLayout(centralWidget);

QLineEdit *line1 = new QLineEdit(this);//創(chuàng)建輸入框

QLineEdit *line2 = new QLineEdit(this);

QLineEdit *line3 = new QLineEdit(this);

formLayout->addRow("姓名:", line1);//添加行

formLayout->addRow("年齡:", line2);

formLayout->addRow("性別:", line3);

formLayout->setContentsMargins(10,10,10,10);//設(shè)置邊距

formLayout->setSpacing(10);//設(shè)置間距

//formLayout->setRowWrapPolicy(QFormLayout::DontWrapRows);//設(shè)置不換行

formLayout->setRowWrapPolicy(QFormLayout::WrapLongRows);//設(shè)置包裝長行

formLayout->setLabelAlignment(Qt::AlignLeft);//設(shè)置標(biāo)簽對齊方式為左對齊

setLayout(formLayout);

}

MainWindow::~MainWindow() {}

按鈕

Push Button:命令按鈕。

Tool Button:工具按鈕。

Radio Button:單選按鈕。

Check Box:復(fù)選框按鈕。

Command Link Button:命令鏈接按鈕。

Dialog Button Box:按鈕盒。

Push Button 命令按鈕。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

# include

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private :

QPushButton *button1;//按鍵1

QPushButton *button2;

private slots:

//聲明按鈕對應(yīng)的槽函數(shù)

void button1_clicked();

void button2_clicked();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

this->setWindowTitle("My App");

//設(shè)置窗口大小

//@Param1: 左上角x坐標(biāo)

//@Param2: 左上角y坐標(biāo)

//@Param3: 寬度

//@Param4: 高度

this->setGeometry(0, 0, 400, 200);

//創(chuàng)建按鈕

button1 = new QPushButton("Button 1", this);

button2 = new QPushButton("Button 2", this);

//設(shè)置按鈕位置

//button1->move(100, 100);

button1->setGeometry(20, 20, 100, 50);

button2->setGeometry(20, 70, 100, 50);

//鏈接信號槽

connect(button1, SIGNAL(clicked()), this, SLOT(button1_clicked()));

connect(button2, SIGNAL(clicked()), this, SLOT(button2_clicked()));

}

MainWindow::~MainWindow() {}

void MainWindow::button1_clicked(){

//設(shè)置QMainWindow背景顏色

this->setStyleSheet("QMainWindow{background-color:rgba(255,0,0,100);}");

}

void MainWindow::button2_clicked(){

//設(shè)置QMainWindow背景顏色

this->setStyleSheet("QMainWindow{background-color:rgba(0,0,0,0.5);}");

}

Tool Button:工具按鈕。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include //引入QStyle類 ,樣式

#include //引入QToolBar類 ,工具條

#include //引入QToolButton類 ,工具按鈕

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QToolBar *toolBar; //工具條

QToolButton *toolButton; //工具按鈕

private slots:

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

//設(shè)置窗口運行位置

this->setGeometry(0, 0, 400, 300);

//實例化工具欄

toolBar = new QToolBar(this);

//設(shè)置工具欄位置

toolBar->setGeometry(20, 20, 100, 100);

//實例化QStyle對象

QStyle *style = QApplication::style();

QIcon icon = style->standardIcon(QStyle::SP_TitleBarContextHelpButton);

//實例化ToolButton對象

toolButton =new QToolButton();

toolButton->setIcon(icon);//設(shè)置按鈕圖標(biāo)

toolButton->setText("Help");//設(shè)置按鈕提示信息

toolButton->setToolButtonStyle(Qt::ToolButtonTextUnderIcon);//設(shè)置按鈕樣式

//添加按鈕到工具欄

toolBar->addWidget(toolButton);

}

MainWindow::~MainWindow() {}

Radio Button:單選按鈕。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

//聲明Radio Button

QRadioButton *radioButton1, *radioButton2;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

this->setGeometry(0, 0, 400, 300);

this->setStyleSheet("QMainWindow{background-color:rgba(20,50,40,20%);}");

//實例化Radio Button

radioButton1= new QRadioButton("radioButton1",this);

radioButton2= new QRadioButton("radioButton2",this);

//設(shè)置Radio Button的位置

radioButton1->setGeometry(10, 10, 100, 30);

radioButton2->setGeometry(120, 10, 100, 30);

//設(shè)置默認(rèn)選中radioButton1

radioButton1->setChecked(true);

}

MainWindow::~MainWindow() {}

Check Box:復(fù)選框按鈕。

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QCheckBox *checkBox;

private slots:

void checkBoxClicked(int);

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

this->setGeometry(0, 0, 400, 300);

this->setStyleSheet("QMainWindow {background-color: rgba(43, 76, 0, 40%);}");

//實例化QCheckBox對象

checkBox = new QCheckBox(this);

//設(shè)置QCheckBox的位置和大小

//@Param1: 左上角x坐標(biāo)

//@Param2: 左上角y坐標(biāo)

//@Param3: 寬度

//@Param4: 高度

checkBox->setGeometry(100, 100, 200, 20);

checkBox->setCheckState(Qt::Checked);//設(shè)置初始狀態(tài)為選中

//設(shè)置顯示文本

checkBox->setText("復(fù)選");

//設(shè)置字體顏色

checkBox->setStyleSheet("color: white;");

checkBox->setTristate();//開啟三態(tài)

connect(checkBox, SIGNAL(stateChanged(int)), this, SLOT(checkBoxClicked(int)));

}

MainWindow::~MainWindow() {}

void MainWindow::checkBoxClicked(int state){

//判斷checkBox的狀態(tài)

switch (state) {

case Qt::Checked:

qDebug() << "復(fù)選框被選中";

checkBox->setText("復(fù)選框被選中");

break;

case Qt::PartiallyChecked:

qDebug() << "復(fù)選框部分選中";

checkBox->setText("復(fù)選框部分選中");

break;

case Qt::Unchecked:

qDebug() << "復(fù)選框未選中";

checkBox->setText("復(fù)選框未選中");

break;

}

}

Command Link Button:命令鏈接按鈕。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //引入Command Link Button控件

#include //引入桌面服務(wù)

#include //引入URL

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

public:

//聲明Command Link Button

QCommandLinkButton *cmdLinkButton;

public slots:

void on_cmdLinkButton_clicked();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

this->setGeometry(0,0,400,300);

this->setStyleSheet("QMainWindow {background-color: rgba(43, 76, 0, 40%);}");

//設(shè)置標(biāo)題

cmdLinkButton = new QCommandLinkButton("標(biāo)題","內(nèi)容",this);

cmdLinkButton->setGeometry(100,100,200,80);

connect(cmdLinkButton,SIGNAL(clicked()),this,SLOT(on_cmdLinkButton_clicked()));

}

MainWindow::~MainWindow() {}

void MainWindow::on_cmdLinkButton_clicked(){

//調(diào)用操作系統(tǒng)打開瀏覽器

QDesktopServices:: openUrl(QUrl("https://www.baidu.com"));

}

Dialog Button Box:按鈕盒。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //引入按鈕盒

#include //引入按鈕

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

public:

QDialogButtonBox *buttonBox;//按鈕盒

QPushButton *pushButton1;//按鈕

QPushButton *pushButton2;//按鈕

public slots:

void on_pushButton_clicked(QAbstractButton *button);

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

{

this->setGeometry(0, 0, 400, 300);

buttonBox= new QDialogButtonBox(this);

pushButton1= new QPushButton("自定義Button 1", this);

//pushButton2= new QPushButton("Button 2", this);

buttonBox->setGeometry(30,30,200,80);

buttonBox->addButton(QDialogButtonBox::Cancel)->setText("取消");//添加取消按鈕

buttonBox->addButton(pushButton1,QDialogButtonBox::AcceptRole);//添加自定義按鈕

//講信號與槽連接起來

connect(buttonBox, SIGNAL(clicked(QAbstractButton *)),

this, SLOT(on_pushButton_clicked(QAbstractButton *)));

}

MainWindow::~MainWindow() {}

void MainWindow::on_pushButton_clicked(QAbstractButton *button){

if(button==buttonBox->button(QDialogButtonBox::Cancel)){

qDebug("取消按鈕被點擊了");

} else if (button==pushButton1){

qDebug("自定義按鈕1被點擊了");

}

}

容器組控件(Containers)

Group Box:組合框:提供帶有標(biāo)題的組合框框架。

Scroll Area:滾動區(qū)域。

Tool Box:工具箱。

Tab Widget:標(biāo)簽小部件。

Stacked Widget:堆疊部件。

Frame:框架。

Widget:小部件。

Mdi Area:MDI 區(qū)域。

Dock Widget:??看绑w部件。

QAxWidget:封裝 Flash 的 ActiveX 控件。

Group Box:組合框。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

#include

#include

#include

#include //可以在水平方向和垂直方向進(jìn)行排列的控件 QHboxLayout/QVBoxLayout 所繼承

class MainWindow : public QWidget

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QWidget(parent)

{

//組合框 1:

QGroupBox *group1 = new QGroupBox("Group1");//創(chuàng)建groupBox

QRadioButton *button1 = new QRadioButton("Button1");//創(chuàng)建按鈕

QRadioButton *button2 = new QRadioButton("Button2");//創(chuàng)建按鈕

QRadioButton *button3 = new QRadioButton("Button3");//創(chuàng)建按鈕

QVBoxLayout *layout = new QVBoxLayout();//創(chuàng)建垂直布局

layout->addWidget(button1);//添加按鈕到布局

layout->addWidget(button2);

layout->addWidget(button3);

group1->setLayout(layout);//設(shè)置groupBox的布局

//組合框 2:

QGroupBox *group2 = new QGroupBox("Group2");//創(chuàng)建groupBox

QCheckBox *button4 = new QCheckBox("Button4");//創(chuàng)建按鈕

QCheckBox *button5 = new QCheckBox("Button5");//創(chuàng)建按鈕

QCheckBox *button6 = new QCheckBox("Button6");//創(chuàng)建按鈕

button4->setTristate(true);//設(shè)置復(fù)選框為三狀態(tài)

button5->setChecked(true);//設(shè)置復(fù)選框為選中狀態(tài)

QVBoxLayout *layout2 = new QVBoxLayout();//創(chuàng)建垂直布局

layout2->addWidget(button4);//添加按鈕到布局

layout2->addWidget(button5);

layout2->addWidget(button6);

group2->setLayout(layout2);//設(shè)置groupBox的布局

//組合框 3:

QGroupBox *group3 =new QGroupBox("Group3");//創(chuàng)建groupBox

group3->setCheckable(true);//設(shè)置groupBox為可選中

QRadioButton *button7 = new QRadioButton("Button1");

QRadioButton *button8 = new QRadioButton("Button2");

QCheckBox *button9 = new QCheckBox("Button3");

QHBoxLayout *layout3 = new QHBoxLayout();//創(chuàng)建水平布局

layout3->addWidget(button7);//添加按鈕到布局

layout3->addWidget(button8);

layout3->addWidget(button9);

group3->setLayout(layout3);//設(shè)置groupBox的布局

//組合框 4:

QGroupBox *group4 =new QGroupBox("Group4");//創(chuàng)建groupBox

group4->setCheckable(true);//設(shè)置groupBox為可選中

group4->setChecked(true);//設(shè)置groupBox為選中狀態(tài)

QPushButton *button10 = new QPushButton("Button1");

//創(chuàng)建子菜單

QMenu *menu = new QMenu(this);//創(chuàng)建菜單

menu->addAction("Action1");//添加菜單項

menu->addAction("Action2");

menu->addAction("Action3");

button10->setMenu(menu);//設(shè)置按鈕的菜單

QHBoxLayout *layout4 = new QHBoxLayout();//創(chuàng)建水平布局

layout4->addWidget(button10);//添加按鈕到布局

group4->setLayout(layout4);//設(shè)置groupBox的布局

QGridLayout* mainLayout = new QGridLayout(this);//創(chuàng)建主布局

mainLayout->addWidget(group1, 0, 0, 1, 2);//添加groupBox到主布局的第一行第一列,占1行兩列

mainLayout->addWidget(group2, 0, 2, 1, 2);//添加groupBox到主布局的第一行第一列,占1行兩列

mainLayout->addWidget(group3, 0, 4, 1, 2);//添加groupBox到主布局的第一行第一列,占1行兩列

mainLayout->addWidget(group4, 4, 0, 1, 2);//添加groupBox到主布局的第一行第一列,占1行兩列

this->setLayout(mainLayout);//設(shè)置主布局

}

MainWindow::~MainWindow() {}

Scroll Area:滾動區(qū)域。

頭文件:

#ifndef WIDGET_H

#define WIDGET_H

#include

#include

#include

#include

class Widget : public QWidget

{

Q_OBJECT

public:

Widget(QWidget *parent = nullptr);

~Widget();

private:

QVBoxLayout *mainLayout; //聲明一個垂直布局

QScrollArea *scrollArea; //聲明一個滾動區(qū)域

QWidget *contentWidget; //聲明一個內(nèi)容部件

QVBoxLayout *contentLayout; //聲明一個內(nèi)容布局

};

#endif // WIDGET_H

#include "widget.h"

Widget::Widget(QWidget *parent)

: QWidget(parent) {

// 創(chuàng)建主布局

mainLayout = new QVBoxLayout(this);// 創(chuàng)建垂直布局

// 創(chuàng)建滾動區(qū)域

scrollArea = new QScrollArea(this);

scrollArea->setWidgetResizable(true);// 設(shè)置滾動區(qū)域可伸縮

// 創(chuàng)建內(nèi)容小部件

contentWidget = new QWidget();

scrollArea->setWidget(contentWidget);

// 為內(nèi)容小部件創(chuàng)建布局

contentLayout = new QVBoxLayout(contentWidget);// 創(chuàng)建垂直布局

// 添加一些標(biāo)簽到內(nèi)容布局中

for (int i = 0; i < 50; ++i) {

// 創(chuàng)建標(biāo)簽

//@param text 標(biāo)簽文本

//@param parent 父對象

QLabel *label = new QLabel(QString("Label %1").arg(i), contentWidget);

contentLayout->addWidget(label);//添加到布局中

}

// 將滾動區(qū)域添加到主布局中

mainLayout->addWidget(scrollArea);

// 設(shè)置窗口屬性

this-> setLayout(mainLayout);

this->setWindowTitle("QScrollArea 示例");

this->resize(300, 200);

}

Widget::~Widget() {

// 清理資源

}

Tool Box:工具箱。

#include

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[]) {

// 創(chuàng)建QApplication實例,這是Qt應(yīng)用程序的入口點

QApplication app(argc, argv);

// 創(chuàng)建一個QToolBox實例,用于管理多個工具選項卡

QToolBox toolBox;

// 創(chuàng)建第一個選項卡的內(nèi)容

QWidget *page1 = new QWidget(); // 創(chuàng)建一個QWidget實例,作為第一個選項卡的內(nèi)容容器

QVBoxLayout *layout1 = new QVBoxLayout(page1); // 創(chuàng)建一個垂直布局管理器,并將其設(shè)置為page1的布局

QPushButton *button1 = new QPushButton("Button 1"); // 創(chuàng)建一個按鈕,顯示文本為"Button 1"

QLabel *label1 = new QLabel("Label 1"); // 創(chuàng)建一個標(biāo)簽,顯示文本為"Label 1"

layout1->addWidget(button1); // 將按鈕添加到布局中

layout1->addWidget(label1); // 將標(biāo)簽添加到布局中

toolBox.addItem(page1, "Tab 1"); // 將page1添加到ToolBox中,選項卡標(biāo)題為"Tab 1"

// 創(chuàng)建第二個選項卡的內(nèi)容

QWidget *page2 = new QWidget(); // 創(chuàng)建一個QWidget實例,作為第二個選項卡的內(nèi)容容器

QVBoxLayout *layout2 = new QVBoxLayout(page2); // 創(chuàng)建一個垂直布局管理器,并將其設(shè)置為page2的布局

QLineEdit *lineEdit2 = new QLineEdit(); // 創(chuàng)建一個單行輸入框

QLabel *label2 = new QLabel("Label 2"); // 創(chuàng)建一個標(biāo)簽,顯示文本為"Label 2"

layout2->addWidget(lineEdit2); // 將輸入框添加到布局中

layout2->addWidget(label2); // 將標(biāo)簽添加到布局中

toolBox.addItem(page2, "Tab 2"); // 將page2添加到ToolBox中,選項卡標(biāo)題為"Tab 2"

// 創(chuàng)建第三個選項卡的內(nèi)容

QWidget *page3 = new QWidget(); // 創(chuàng)建一個QWidget實例,作為第三個選項卡的內(nèi)容容器

QVBoxLayout *layout3 = new QVBoxLayout(page3); // 創(chuàng)建一個垂直布局管理器,并將其設(shè)置為page3的布局

QPushButton *button3 = new QPushButton("Button 3"); // 創(chuàng)建一個按鈕,顯示文本為"Button 3"

QLineEdit *lineEdit3 = new QLineEdit(); // 創(chuàng)建一個單行輸入框

layout3->addWidget(button3); // 將按鈕添加到布局中

layout3->addWidget(lineEdit3); // 將輸入框添加到布局中

toolBox.addItem(page3, "Tab 3"); // 將page3添加到ToolBox中,選項卡標(biāo)題為"Tab 3"

// 顯示ToolBox

toolBox.show();

// 進(jìn)入Qt應(yīng)用程序的主事件循環(huán),等待用戶交互

return app.exec();

}

Tab Widget:標(biāo)簽小部件。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QTabWidget *tabWidgetUI;

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

this->setWindowTitle("選項卡小部件");

this->setGeometry(0, 0, 800, 600);

tabWidgetUI = new QTabWidget(this);//創(chuàng)建選項卡小部件

tabWidgetUI->setGeometry(10, 10, 400, 300);//設(shè)置選項卡小部件的位置和大小

tabWidgetUI->show();//顯示選項卡小部件

// 創(chuàng)建第一個選項卡

QWidget *page1 = new QWidget();

QVBoxLayout *layout1 = new QVBoxLayout(page1);

QPushButton *button1 = new QPushButton("Button 1");

QLabel *label1 = new QLabel("Label 1");

layout1->addWidget(button1);

layout1->addWidget(label1);

tabWidgetUI->addTab(page1, "Tab 1");

// 創(chuàng)建第二個選項卡

QWidget *page2 = new QWidget();

QVBoxLayout *layout2 = new QVBoxLayout(page2);

QLabel *label2 = new QLabel("Label 2");

layout2->addWidget(label2);

tabWidgetUI->addTab(page2, "Tab 2");

// 創(chuàng)建第三個選項卡

QWidget *page3 = new QWidget();

QVBoxLayout *layout3 = new QVBoxLayout(page3);

QPushButton *button3 = new QPushButton("Button 3");

layout3->addWidget(button3);

tabWidgetUI->addTab(page3, "Tab 3");

}

MainWindow::~MainWindow()

{

delete ui;

}

Stacked Widget:堆疊部件。

Frame:框架。

頭文件:

#ifndef WIDGET_H

#define WIDGET_H

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class Widget;

}

QT_END_NAMESPACE

class Widget : public QWidget

{

Q_OBJECT

public:

Widget(QWidget *parent = nullptr);

~Widget();

private:

Ui::Widget *ui;

};

#endif // WIDGET_H

#include "widget.h"

#include "./ui_widget.h"

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

this->setStyleSheet("background-color: white; ");

this->setWindowTitle("My Widget");

//設(shè)置背景顏色

ui->frame_1->setStyleSheet("background-color: yellow;");

ui->frame_2->setStyleSheet("background-color: green;");

ui->frame_1->setLineWidth(3);//設(shè)置邊框?qū)挾?/p>

ui->frame_1->setFrameShape(QFrame::Box);//設(shè)置邊框樣式

ui->frame_2->setFrameShape(QFrame::Panel);//設(shè)置邊框樣式

}

Widget::~Widget()

{

delete ui;

}

Dock Widget:??看绑w部件。

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

QDockWidget *dockWidget = new QDockWidget("Dock Widget", this);//創(chuàng)建Dock Widget

dockWidget->setMaximumSize(300, 200);//設(shè)置最大尺寸

dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);//設(shè)置允許??康膮^(qū)域

}

MainWindow::~MainWindow()

{

delete ui;

}

Item View控件(Item Views)

List View:清單視圖。

Tree View:樹視圖。

Table View:表視圖。

Column View:列視圖。

Undo View:撤銷視圖。

List View:清單視圖。

頭文件:

#ifndef WIDGET_H

#define WIDGET_H

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class Widget;

}

QT_END_NAMESPACE

class Widget : public QWidget

{

Q_OBJECT

public:

Widget(QWidget *parent = nullptr);

~Widget();

private:

Ui::Widget *ui;

QListView *listView1;

private slots:

void onclicked(const QModelIndex &index);

};

#endif // WIDGET_H

#include "widget.h"

#include "./ui_widget.h"

Widget::Widget(QWidget *parent)

: QWidget(parent)

, ui(new Ui::Widget)

{

ui->setupUi(this);

this->resize(400, 300);

//創(chuàng)建listview

listView1=new QListView(this);

listView1->setGeometry(0,0,200,200);

//創(chuàng)建字符串列表

QStringList qlist;

qlist.append("item1");

qlist.append("item2");

qlist.append("item3");

//創(chuàng)建清單模型

QStringListModel *model=new QStringListModel(qlist);

///將模型添加到listview中

listView1->setModel(model);

//設(shè)置點擊事件

connect(listView1,SIGNAL(clicked(QModelIndex)),this,SLOT(onclicked(QModelIndex)));

}

Widget::~Widget()

{

delete ui;

}

void Widget::onclicked(const QModelIndex &index){

QMessageBox::information(this,"提示","你點擊了"+index.data().toString());

}

Tree View:樹視圖。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //標(biāo)準(zhǔn)項目型號

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

//初始化樹控件視圖

void initTreeView();

QStandardItemModel *model;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

initTreeView();

}

MainWindow::~MainWindow()

{

delete ui;

}

//初始化樹形控件

void MainWindow::initTreeView(){

//構(gòu)造模型

model=new QStandardItemModel(ui->treeView);

model->setHorizontalHeaderLabels(QStringList()<<"名稱"<<"大小"<<"類型");

//添加節(jié)點

QList root;

QStandardItem *item1=new QStandardItem("節(jié)點");

QStandardItem *item2= new QStandardItem("100M");

root.append(item1);

root.append(item2);

model->appendRow(root);

//設(shè)置節(jié)點的子節(jié)點

QList root1;

QStandardItem *item3=new QStandardItem("子節(jié)點");

//QStandardItem *item4= new QStandardItem("50M");

root1.append(item3);

//root1.append(item4);

item1->appendRow(root1);

//設(shè)置節(jié)點的子節(jié)點的z子節(jié)點

QList root2;

QStandardItem *item5=new QStandardItem("子子節(jié)點");

//QStandardItem *item6= new QStandardItem("50M");

root2.append(item5);

// root2.append(item6);

item3->appendRow(root2);

ui->treeView->setModel(model);

}

Table View:表視圖。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

void InitTableViews();

};

#endif // MAINWINDOW_H

#include

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

InitTableViews();

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::InitTableViews(){

//添加表頭,準(zhǔn)備數(shù)據(jù)模型

//創(chuàng)建一個數(shù)據(jù)模型,設(shè)置行數(shù)和列數(shù)

QStandardItemModel *model = new QStandardItemModel();

model->setHorizontalHeaderItem(0, new QStandardItem("姓名"));

model->setHorizontalHeaderItem(1, new QStandardItem("年齡"));

model->setHorizontalHeaderItem(2, new QStandardItem("性別"));

model->setHorizontalHeaderItem(3, new QStandardItem("電話"));

//添加數(shù)據(jù)

model->setItem(0, 0, new QStandardItem("張三"));

model->setItem(0, 1, new QStandardItem("25"));

model->setItem(0, 2, new QStandardItem("男"));

model->setItem(0, 3, new QStandardItem("13812345678"));

model->setItem(1, 0, new QStandardItem("李四"));

model->setItem(1, 1, new QStandardItem("26"));

model->setItem(1, 2, new QStandardItem("女"));

model->setItem(1, 3, new QStandardItem("13812345679"));

//設(shè)置模型到表格視圖

ui->tableView->setModel(model);

//設(shè)置大小

ui->tableView->resizeColumnsToContents();//根據(jù)內(nèi)容調(diào)整列的大小

ui->tableView->resizeRowsToContents();//根據(jù)內(nèi)容調(diào)整行的大小

//設(shè)置禁止編輯

ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//無編輯觸發(fā)器

//排序

ui->tableView->setSortingEnabled(true);//設(shè)置排序已啟用

}

Column View:列視圖。

Undo View:撤銷視圖。

Input Widgets控件(Input Widgets)

List Widget:清單控件

Tree Widget:樹控件

Table Widget:表控件

List Widget:清單控件。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

//注釋: 這里是添加一個新的 QListWidgetItem 到 QListWidget 中

QListWidgetItem *item = new QListWidgetItem(ui->listWidget);

item->setText("New Item");

item->setTextAlignment(Qt::AlignCenter);

//注釋: 這里是添加多個 QListWidgetItem 到 QListWidget 中

QStringList list;

list << "Item 1" << "Item 2" << "Item 3";

ui->listWidget->addItems(list);

}

MainWindow::~MainWindow()

{

delete ui;

}

Tree Widget:樹控件。

頭文件:

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

//測試TreeWidget

//去掉頭部的標(biāo)題

ui->treeWidget->header()->close();

QTreeWidgetItem *item1 = new QTreeWidgetItem(ui->treeWidget);

item1->setText(0, "Item 1");

item1->setCheckState(0, Qt::Checked);

QTreeWidgetItem *item2 = new QTreeWidgetItem(ui->treeWidget);

item2->setText(0, "Item 2");

item2->setCheckState(0, Qt::Checked);

QTreeWidgetItem *item3 = new QTreeWidgetItem(item2);

item3->setText(0, "Item 3");

item3->setCheckState(0, Qt::Checked);

QTreeWidgetItem *item4 = new QTreeWidgetItem(item2);

item4->setText(0, "Item 4");

item4->setCheckState(0, Qt::Checked);

QTreeWidgetItem *item5 = new QTreeWidgetItem(item4);

item5->setText(0, "Item 5");

item5->setCheckState(0, Qt::Checked);

QTreeWidgetItem *item6 = new QTreeWidgetItem(item4);

item6->setText(0, "Item 6");

item6->setCheckState(0, Qt::Checked);

QTreeWidgetItem *item7 = new QTreeWidgetItem(item6);

item7->setText(0, "Item 7");

item7->setCheckState(0, Qt::Checked);

//設(shè)置默認(rèn)展開

ui->treeWidget->expandAll();

}

MainWindow::~MainWindow()

{

delete ui;

}

Table Widget:表控件。

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

//設(shè)置表格的列數(shù)和行數(shù)

ui->tableWidget->setColumnCount(3);//設(shè)置列數(shù)

ui->tableWidget->setRowCount(10);//設(shè)置行數(shù)

//設(shè)置表格的標(biāo)題

ui->tableWidget->setHorizontalHeaderLabels(QStringList()<<"姓名"<<"性別"<<"年齡");

//設(shè)置單元格的值

ui->tableWidget->setItem(0,0,new QTableWidgetItem("張三"));

ui->tableWidget->setItem(0,1,new QTableWidgetItem("男"));

ui->tableWidget->setItem(0,2,new QTableWidgetItem("25"));

ui->tableWidget->setItem(1,0,new QTableWidgetItem("李四"));

ui->tableWidget->setItem(1,1,new QTableWidgetItem("女"));

ui->tableWidget->setItem(1,2,new QTableWidgetItem("30"));

ui->tableWidget->setItem(2,0,new QTableWidgetItem("王五"));

ui->tableWidget->setItem(2,1,new QTableWidgetItem("男"));

ui->tableWidget->setItem(2,2,new QTableWidgetItem("20"));

//循環(huán)設(shè)置數(shù)據(jù)

for(int i=3;i<6;i++) {

for (int j = 0; j < 3; j++) {

ui->tableWidget->setItem(i, j, new QTableWidgetItem(QString("第%1行第%2列").arg(i).arg(j)));

}

}

}

MainWindow::~MainWindow()

{

delete ui;

}

Input Widgets控件(Input Widgets)

Combo Box:組合框

Font Combo Box:字體組合框

Line Edit:行編輯框

Text Edit:文本編輯框

Plain Text Edit:純文本編輯框

Spin Box:數(shù)值框

Double Spin Box:雙精度數(shù)值框

Date Edit:日期編輯框

Time Edit:時間編輯框

DateTime Edit:日期時間編輯框

Dial:撥號盤

Horizonal Slider Bar: 水平滑動條

Vertical Slider Bar: 垂直滑動條

Horizontal Slider: 水平滑塊

Vertical Slider: 垂直滑塊

File Dialog:文件對話框

Key Sequence Edit:快捷鍵編輯框

Combo Box:組合框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

# include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QComboBox *comboBox; //定義一個QComboBox對象

Ui::MainWindow *ui;

private slots:

void combBoxChanged(int); //槽函數(shù)

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

this->setWindowTitle("My App");

this->setGeometry(0,0,400, 300);

//測試Combo Box

QComboBox *comboBox = new QComboBox(this);//創(chuàng)建ComboBox對象

comboBox->setGeometry(100, 100, 100, 30);//設(shè)置位置和大小

comboBox->addItem("Item1");//添加選項

comboBox->addItem("Item2");

comboBox->addItem("Item3");

comboBox->addItem("Item4");

comboBox->addItem("Item5");

//測試信號與槽

connect(comboBox, SIGNAL(currentIndexChanged(int)),

this, SLOT(combBoxChanged(int)));//連接信號與槽

}

void MainWindow::combBoxChanged(int index){

qDebug() << "選擇了第" << index << "項";

}//槽函數(shù)

MainWindow::~MainWindow()

{

delete ui;

}

Font Combo Box:字體組合框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QFontComboBox *fontComboBox;

QLabel *label;

Ui::MainWindow *ui;

private slots:

void FontFunc(QFont);

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

fontComboBox = new QFontComboBox(this);

label=new QLabel(this);

fontComboBox->setGeometry(10,10,100,30);

label->setGeometry(10,50,200,30);

connect(fontComboBox, SIGNAL(currentFontChanged(QFont)),

this, SLOT(FontFunc(QFont)));

}

void MainWindow::FontFunc(QFont font){

label->setFont(font);

QString text="Hello World";

label->setText(text);

}

MainWindow::~MainWindow()

{

delete ui;

}

Line Edit:行編輯框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QLineEdit *lineEdit;

QPushButton *pushButton;

QLabel *label;

Ui::MainWindow *ui;

private slots:

void on_pushButton_clicked();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

lineEdit = new QLineEdit(this);

lineEdit->setGeometry(QRect(10, 10, 100, 30));

pushButton = new QPushButton(this);

pushButton->setGeometry(QRect(10, 50, 100, 30));

pushButton->setText("Click me");

connect(pushButton, SIGNAL(clicked()),

this, SLOT(on_pushButton_clicked()));

label = new QLabel(this);

label->setGeometry(QRect(10, 90, 100, 30));

label->setText("Hello World!");

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_pushButton_clicked(){

QString text = "輸入:"+lineEdit->text();

label->setText(text);

}

Text Edit:文本編輯框

Plain Text Edit:純文本編輯框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //功能:顯示文本框

#include //功能:單選按鈕

#include //功能:文件目錄

#include //功能:文本流

#include //功能:應(yīng)用

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QPlainTextEdit *textEdit;

QRadioButton *radioButton;

Ui::MainWindow *ui;

private slots:

void QRadioButtonClicked();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

textEdit=new QPlainTextEdit(this);//創(chuàng)建文本編輯器

textEdit->setPlainText("Hello World!");//設(shè)置文本編輯器初始內(nèi)容

textEdit->setGeometry(10,10,300,300);//設(shè)置文本編輯器位置和大小

radioButton=new QRadioButton(this);//創(chuàng)建單選按鈕

radioButton->setText("只讀");//設(shè)置單選按鈕文本

radioButton->setGeometry(350,0,100,30);//設(shè)置單選按鈕位置和大小

//設(shè)置工作目錄為可執(zhí)行程序的目錄

QDir::setCurrent(QCoreApplication::applicationDirPath());

QFile file("cmake_install.cmake");//讀取文件

file.open(QIODevice::ReadOnly | QIODevice::Text);//打開文件

//加載文件內(nèi)容到文本編輯器

QTextStream in(&file);

textEdit->setPlainText(in.readAll());

//連接單選按鈕點擊信號與槽函數(shù)

connect(radioButton,SIGNAL(clicked()),

this,SLOT(QRadioButtonClicked()));

}

void MainWindow::QRadioButtonClicked(){

//設(shè)置文本編輯器是否只讀

if(radioButton->isChecked()){

textEdit->setReadOnly(true);

}else{

textEdit->setReadOnly(false);

}

}

MainWindow::~MainWindow()

{

delete ui;

}

Spin Box:數(shù)值框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QSpinBox *spinBox;

Ui::MainWindow *ui;

private slots:

void on_spinBox_valueChanged(int value);

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

spinBox = new QSpinBox(this);

spinBox->setGeometry(100, 100, 200, 30);

//設(shè)置范圍

spinBox->setRange(0, 100);

//設(shè)置步長

spinBox->setSingleStep(5);

//設(shè)置初始值

spinBox->setValue(100);

//設(shè)置標(biāo)簽

spinBox->setPrefix("透明度:");//設(shè)置前綴

spinBox->setSuffix(" %");//設(shè)置后綴

connect(spinBox, SIGNAL(valueChanged(int)),

this, SLOT(on_spinBox_valueChanged(int)));

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_spinBox_valueChanged(int value){

//根據(jù)值修改窗口背景透明度

this->setWindowOpacity((double)value/100.0);

}

Double Spin Box:雙精度數(shù)值框

Date Edit:日期編輯框

Time Edit:時間編輯框

DateTime Edit:日期時間編輯框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

//時間相關(guān)

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QDateTimeEdit *dateTimeEdit1;

QTimeEdit *timeEdit1;

QDateEdit *dateEdit1;

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

//初始化一個QDateTimeEdit控件參數(shù)是當(dāng)前時間

dateTimeEdit1= new QDateTimeEdit(QDateTime::currentDateTime(), this);

dateTimeEdit1->setGeometry(10, 10, 300, 30);

timeEdit1= new QTimeEdit(QTime::currentTime(), this);

timeEdit1->setGeometry(10, 50, 300, 30);

dateEdit1= new QDateEdit(QDate::currentDate(), this);

dateEdit1->setGeometry(10, 90, 300, 30);

//設(shè)置控件的顯示格式

dateTimeEdit1->setDisplayFormat("yyyy-MM-dd HH:mm:ss");

timeEdit1->setDisplayFormat("HH:mm:ss");

dateEdit1->setDisplayFormat("yyyy-MM-dd");

}

MainWindow::~MainWindow()

{

delete ui;

}

Dial:撥號盤

Horizonal Slider Bar: 水平滑動條

Vertical Slider Bar: 垂直滑動條

Horizontal Slider: 水平滑塊

Vertical Slider: 垂直滑塊

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //包含滾動條頭文件

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QScrollBar *verticalScrollBar;//垂直滾動條

QScrollBar *horizontalScrollBar;//水平滾動條

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

verticalScrollBar=new QScrollBar(Qt::Vertical,this);//創(chuàng)建垂直滾動條

verticalScrollBar->setGeometry(10,10,10,1000);

verticalScrollBar->setRange(0,100);//設(shè)置滾動條范圍

verticalScrollBar->setValue(0);//設(shè)置滾動條初始值

horizontalScrollBar=new QScrollBar(Qt::Horizontal,this);//創(chuàng)建水平滾動條

horizontalScrollBar->setGeometry(10,10,1000,10);

horizontalScrollBar->setRange(0,100);//設(shè)置滾動條范圍

horizontalScrollBar->setValue(0);//設(shè)置滾動條初始值

}

MainWindow::~MainWindow()

{

delete ui;

}

File Dialog:文件對話框

Key Sequence Edit:快捷鍵編輯框

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include //功能:可編輯快捷鍵

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QKeySequenceEdit *keySequenceEdit;

Ui::MainWindow *ui;

private slots:

void keySequenceEditChanged(const QKeySequence & keySequence);

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

keySequenceEdit=new QKeySequenceEdit(this);

keySequenceEdit->setGeometry(10,10,200,100);

connect(keySequenceEdit,SIGNAL(keySequenceChanged(const QKeySequence &)),

this,SLOT(keySequenceEditChanged(const QKeySequence &)));

}

void MainWindow::keySequenceEditChanged(const QKeySequence &key){

if(!key.isEmpty()){//如果輸入的快捷鍵為空,則不做任何處理

if(key==QKeySequence(tr("Ctrl+Shift+A"))){ //tr()函數(shù):用于翻譯字符串 QKeySequence()函數(shù):用于創(chuàng)建QKeySequence對象

this->close();

} else{

qDebug()<

}

}

}

MainWindow::~MainWindow()

{

delete ui;

}

Display Widgets: 顯示控件

Label:標(biāo)簽

Text Browser:文本瀏覽器

Graphics View:圖形視圖

Calendar Widget:日歷控件

LCD Number:LCD數(shù)字

Progress Bar:進(jìn)度條

Status Bar:狀態(tài)欄

Horizontal Line : 水平線

Vertical Line : 垂直線

OpenGl Widget : OpenGL控件

QQuickWidget : Qt Quick控件

Label:標(biāo)簽

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

private slots:

void textlablefunc();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

textlablefunc();

}

void MainWindow::textlablefunc(){

QString fname = "A:\\QT_WORK\\q42\\image\\1.png";

//創(chuàng)建QImage對象 功能是加載圖片

QImage *image = new QImage();

//判斷圖片是否加載成功

if(!image->load(fname)){

qDebug() << "Failed to load image";

QMessageBox::information(this, "Error", "Failed to load image");

delete image;

return;

}

//設(shè)置label的大小是圖片的大小

//ui->label->setFixedSize(image->width(), image->height());

//圖片適配label大小

ui->label->setScaledContents(true);

ui->label->setPixmap(QPixmap::fromImage(*image));

}

MainWindow::~MainWindow()

{

delete ui;

}

Text Browser:文本瀏覽器

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

Ui::MainWindow *ui;

private slots:

void textbrowserFunc();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

textbrowserFunc();

}

void MainWindow::textbrowserFunc(){

//存儲文件內(nèi)容

QString strData;

QFile file("A:\\QT_WORK\\q43\\text.txt");

//打開文件

if(file.open(QIODevice::ReadOnly | QIODevice::Text)){

QMessageBox::information(this, "提示", "文件打開成功!", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);

}else{

QMessageBox::warning(this, "警告", "文件打開失??!", QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);

return;

}

//讀取文件內(nèi)容 atEnd()判斷文件是否讀取完畢

while (!file.atEnd()){

//讀取一行內(nèi)容到二進(jìn)制數(shù)組中

QByteArray line= file.readLine();

QString strs(line);//將二進(jìn)制數(shù)組轉(zhuǎn)換為字符串

strData.append(strs);

}

//顯示文件內(nèi)容

ui->textBrowser->setText(strData);

}

MainWindow::~MainWindow()

{

delete ui;

}

Graphics View:圖形視圖

Calendar Widget:日歷控件

LCD Number:LCD數(shù)字

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

#include

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

QLCDNumber *lcdNumber;

QTimer *timer;

QPushButton *startButton;

QPushButton *stopButton;

QPushButton *cleanButton;

int seconds;

private slots:

void updateTimer();

void startTimer();

void stopTimer();

void cleanTimer();

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent),seconds(0)

{

// 創(chuàng)建QLCDNumber控件

lcdNumber = new QLCDNumber(this);

lcdNumber->setDigitCount(5);//設(shè)置顯示的數(shù)字位數(shù)

lcdNumber->setSegmentStyle(QLCDNumber::Flat); //設(shè)置顯示樣式為平面樣式

lcdNumber->display("00000");//設(shè)置初始顯示值

// 創(chuàng)建開始和停止按鈕

startButton = new QPushButton("開始", this);

stopButton = new QPushButton("停止", this);

cleanButton = new QPushButton("重置", this);

// 連接按鈕的點擊信號到槽函數(shù)

connect(startButton, &QPushButton::clicked, this, &MainWindow::startTimer);

connect(stopButton, &QPushButton::clicked, this, &MainWindow::stopTimer);

connect(cleanButton, &QPushButton::clicked, this, &MainWindow::cleanTimer);

// 創(chuàng)建一個定時器

timer = new QTimer(this);

connect(timer, &QTimer::timeout, this, &MainWindow::updateTimer);

// 設(shè)置布局

QVBoxLayout *mainLayout = new QVBoxLayout; // 創(chuàng)建一個垂直布局

mainLayout->addWidget(lcdNumber); //將QLCDNumber控件添加到布局中

QHBoxLayout *buttonLayout = new QHBoxLayout; // 創(chuàng)建一個水平布局

buttonLayout->addWidget(startButton);

buttonLayout->addWidget(stopButton);

buttonLayout->addWidget(cleanButton);

mainLayout->addLayout(buttonLayout); // 將按鈕布局添加到布局中

// 創(chuàng)建一個中心窗口并設(shè)置布局

QWidget *centralWidget = new QWidget(this);

centralWidget->setLayout(mainLayout);

this->setCentralWidget(centralWidget);//將中心窗口設(shè)置為主窗口

}

void MainWindow::updateTimer(){

seconds++;

lcdNumber->display(QString::number(seconds));

}

void MainWindow::startTimer(){

//seconds = 0;

lcdNumber->display(++seconds);

timer->start(1000); // 每秒更新一次

}

void MainWindow::stopTimer(){

timer->stop();

}

void MainWindow::cleanTimer(){

seconds = 0;

lcdNumber->display("00000");

}

MainWindow::~MainWindow()

{

}

Progress Bar:進(jìn)度條

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private slots:

void on_pushButton_clicked();

private:

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

//進(jìn)度條初始化

ui->progressBar->setValue(0);

//設(shè)置進(jìn)度條范圍

ui->progressBar->setRange(0, 100000);

ui->pushButton->setText("開始");

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::on_pushButton_clicked()

{

for(int i=0;i<=100000;i++){

for(int j=0;j<1;j++){

ui->progressBar->setValue(i);

}

}

}

Status Bar:狀態(tài)欄

#ifndef MAINWINDOW_H

#define MAINWINDOW_H

#include

QT_BEGIN_NAMESPACE

namespace Ui {

class MainWindow;

}

QT_END_NAMESPACE

class MainWindow : public QMainWindow

{

Q_OBJECT

public:

MainWindow(QWidget *parent = nullptr);

~MainWindow();

private:

void setupStatusBar();

Ui::MainWindow *ui;

};

#endif // MAINWINDOW_H

#include

#include

#include "mainwindow.h"

#include "./ui_mainwindow.h"

MainWindow::MainWindow(QWidget *parent)

: QMainWindow(parent)

, ui(new Ui::MainWindow)

{

ui->setupUi(this);

this->setWindowTitle("狀態(tài)欄示例");

QPushButton *butt=new QPushButton("按鈕",this);

//設(shè)置按鈕大小

butt->setFixedSize(100,30);

//設(shè)置按鈕的位置

this->setCentralWidget(butt);//設(shè)置中心窗口

connect(butt, &QPushButton::clicked,

this,

[this]() {

this->statusBar()->showMessage("按鈕被點擊了", 3000); // 顯示消息3秒

});

setupStatusBar();//初始化狀態(tài)欄

}

MainWindow::~MainWindow()

{

delete ui;

}

void MainWindow::setupStatusBar(){

QStatusBar *statusBar = new QStatusBar(this);//創(chuàng)建狀態(tài)欄

this ->setStatusBar(statusBar);//設(shè)置狀態(tài)欄

// 在狀態(tài)欄中添加一個永久部件

QLabel *permanentLabel = new QLabel("就緒", this);

statusBar->addPermanentWidget(permanentLabel);

// 初始顯示消息

statusBar->showMessage("歡迎使用狀態(tài)欄", 5000); // 顯示消息5秒

}

Horizontal Line : 水平線

Vertical Line : 垂直線

OpenGl Widget : OpenGL控件

QQuickWidget : Qt Quick控件

柚子快報激活碼778899分享:QT 控件使用案例

http://yzkb.51969.com/

參考鏈接

評論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://m.gantiao.com.cn/post/19577440.html

發(fā)布評論

您暫未設(shè)置收款碼

請在主題配置——文章設(shè)置里上傳

掃描二維碼手機訪問

文章目錄