柚子快報激活碼778899分享:QT 控件使用案例
柚子快報激活碼778899分享:QT 控件使用案例
常用控件
表單 按鈕
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
#include
#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
#include
#include
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
#include
#include
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
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
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
QStandardItem *item1=new QStandardItem("節(jié)點");
QStandardItem *item2= new QStandardItem("100M");
root.append(item1);
root.append(item2);
model->appendRow(root);
//設(shè)置節(jié)點的子節(jié)點
QList
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
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
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 控件使用案例 參考鏈接
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。