QT中大部分部件如何使用举例详解

目录

  • 【1】main.cpp
  • 【2】mainwindow.h
  • 【3】mainwindow.cpp
  • 【4】ui界面设计
  • 【5】代码运行效果图
  • 总结
内容繁多,直接上代码
重点请看mainwindow.cpp的中代码和ui如何设计的

【1】main.cpp
#include "mainwindow.h"#include int main(int argc, char *argv[]){QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); }


【2】mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include#include #include //解决字符编码乱码问题#include#include //滑动杆QT_BEGIN_NAMESPACEnamespace Ui { class MainWindow; }QT_END_NAMESPACEclass MainWindow : public QMainWindow{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr); ~MainWindow(); public slots:private slots:voidtextbutton_1(); void on_PBT_clicked(); void on_PBJ_clicked(); void on_PBL_clicked(); void on_pushButton_8_clicked(); void on_pushButton_9_clicked(); void on_pushButton_11_clicked(); void on_pushButton_13_clicked(); void on_pushButton_12_clicked(); void on_pushButton_10_clicked(); void display(int); void on_horizontalScrollBar_valueChanged(int value); void on_verticalScrollBar_valueChanged(int value); void on_horizontalSlider_valueChanged(int value); void on_verticalSlider_valueChanged(int value); void on_calendarWidget_clicked(const QDate &date); void on_pushButton_15_clicked(); void on_pushButton_14_clicked(); void on_pushButton_17_clicked(); private:Ui::MainWindow *ui; QTextCodec *codec; QString filename; QPushButton* bt_filename; QPushButton* bt_getcolor; QPushButton* bt_getfont; QPushButton* bt_getinput; QPushButton* bt_error; QPushButton* bt_message; QPushButton* bt_progress; QTextEdit *te_test; QPushButton *p1; QScrollBar *sb; }; #endif // MAINWINDOW_H


【3】mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#include#include//进度条头文件#include//控制台输出//==========================布局管理器#include//水平#include//垂直#include//网格//==========================各大对话框类#include#include#include#include#include #include #include#include//文件读写#include //行编辑#include//滚动条#include//标签显示动画#includeMainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow){ui->setupUi(this); ui->progressBar->setValue(0); codec = QTextCodec::codecForName("gbk"); //设置字符编码codec->setCodecForLocale(codec); setWindowTitle(codec->toUnicode("UI学习笔记")); ui->stackedWidget->setCurrentIndex(0); //显示当前索引,第一页//文件对话框connect(ui->pushButton_2,&QPushButton::clicked,[&]{QString filename =QFileDialog::getOpenFileName(); ui->textEdit_3->append(filename); }); //颜色对话框connect(ui->pushButton_3, &QPushButton::clicked, [&](){QColor color = QColorDialog::getColor(); ui->textEdit_3->setTextColor(color); }); //字体对话框bool ok; connect(ui->pushButton_4,&QPushButton::clicked,[&](){QFont font = QFontDialog::getFont(&ok); if(ok){ui->textEdit_3->setCurrentFont(font); }}); //输入对话框connect(ui->pushButton_5, &QPushButton::clicked, [&](){QString str = QInputDialog::getText(this, "Title", "input"); ui->textEdit_3->append(str); }); //信息对话框connect(ui->pushButton_6,&QPushButton::clicked,[&](){int ret = QMessageBox::information(this,"Title","you yyds",QMessageBox::Ok,QMessageBox::Apply,QMessageBox::Close); if(ret ==QMessageBox::Ok){ui->textEdit_3->append("111111111111111111111111"); }}); //错误对话框connect(ui->pushButton_7, &QPushButton::clicked, [&](){QErrorMessage *error= new QErrorMessage; error->showMessage("errorerrorerror"); }); }MainWindow::~MainWindow(){delete ui; }//浏览按钮void MainWindow::on_PBL_clicked(){filename = QFileDialog::getOpenFileName(); //文件对话框ui->lineEdit->setText(filename); }//加密按钮void MainWindow::on_PBJ_clicked(){//读写文件打开QFile f(filename); if(!f.open(QIODevice::ReadWrite))return; //读取全部内容QByteArray buf = f.readAll(); ui->textEdit->append(codec->toUnicode(buf)); //加密前ui->progressBar->setRange(0,buf.length()-1); for(int i=0; iprogressBar->setValue(i); //进度条}ui->textEdit_2->append(codec->toUnicode(buf)); //加密后//回写f.seek(0); f.write(buf); //关闭f.close(); }//下一页void MainWindow::on_PBT_clicked(){ui->stackedWidget->setCurrentIndex(1); }//上一页:void MainWindow::on_pushButton_8_clicked(){ui->stackedWidget->setCurrentIndex(0); }//下一页void MainWindow::on_pushButton_9_clicked(){ui->pushButton->setIconSize(QSize(80,80)); //设置按钮图标大小//ui->pushButton->setFlat(true); //设置无边框ui->pushButton->setIcon(QIcon("C:/Users/SuJieYin/Pictures/Saved Pictures/1.png")); ui->pushButton->show(); ui->toolButton->setIconSize(QSize(50,50)); //ui->toolButton->setIcon(QIcon("C:/Users/SuJieYin/Pictures/Saved Pictures/1.png")); ui->toolButton->setToolTip("Tip"); //选中按钮时,会有提示文字ui->toolButton->setText("toolbutton"); ui->toolButton->show(); //绑定快捷键ui->toolButton->setShortcut(QKeySequence(Qt::CTRL+Qt::Key_W)); connect(ui->toolButton,SIGNAL(clicked(bool)),this,SLOT(textbutton_1())); //RadioButton_2设置图标ui->radioButton_2->setIcon(QIcon("C:/Users/SuJieYin/Pictures/Saved Pictures/1.png")); ui->radioButton_2->click(); //选中按钮ui->radioButton_2->setEnabled(true); //设置使能connect(ui->radioButton_2, &QRadioButton::clicked, [&](){//lamda表达式(无名函数)qDebug()<<"RadioButton_2"; }); //CheckBox按钮ui->checkBox_2->setIcon(QIcon("C:/Users/SuJieYin/Pictures/Saved Pictures/1.png")); connect(ui->checkBox_2, &QRadioButton::clicked, [&](){//lamda表达式(无名函数)qDebug()<<"checkBox_2"; }); //行编辑框使用举例ui->lineEdit_2->setEchoMode(QLineEdit::Password); //行编辑框输入隐藏//选中检查框,显示密码,connect(ui->checkBox_3,&QCheckBox::clicked,[&](bool x){ui->lineEdit_2->setEchoMode(x?QLineEdit::Normal:QLineEdit::Password); } ); ui->stackedWidget->setCurrentIndex(2); //显示这一页的所有部件}//快捷键和单击按钮都可以触发void MainWindow::textbutton_1(){qDebug()<<"CTRL+w"; }//下一页:实现输入小部件类组件void MainWindow::on_pushButton_13_clicked(){//组合k框ui->comboBox->addItem("com1"); ui->comboBox->addItem("com2"); //点击文本后,显示文本connect(ui->comboBox,&QComboBox::currentTextChanged,[&](QString x){ui->label_5->setText(x); }); //字体选择框connect(ui->fontComboBox,&QFontComboBox::currentFontChanged,[&](QFont x){ui->label_6->setFont(x); ui->label_6->setText("OKKO"); ui->lineEdit_3->setFont(x); ui->textEdit_4->setCurrentFont(x); ui->plainTextEdit->setToolTip("123"); //设置提示ui->plainTextEdit->appendPlainText("http://"); //显示文本}); //自旋框ui->spinBox->setRange(0,10); //设置取值范围connect(ui->spinBox,SIGNAL(valueChanged(int)),ui->lcdNumber,SLOT(display(int))); ui->stackedWidget->setCurrentIndex(3); //旋钮connect(ui->dial,SIGNAL(valueChanged(int)),ui->lcdNumber,SLOT(display(int))); //滚动条//sb= new QScrollBar; //没有指定窗口,会自己弹出一个窗口;sb= new QScrollBar(ui->page_4); //只显示在这页【重点】sb->setOrientation(Qt::Horizontal); //设置水平方向sb->setGeometry(20,500,100,10); sb->show(); connect(sb,SIGNAL(valueChanged(int)),ui->lcdNumber,SLOT(display(int))); ui->stackedWidget->setCurrentIndex(3); }//上一页void MainWindow::on_pushButton_12_clicked(){ui->stackedWidget->setCurrentIndex(1); }//下一页【第5页】void MainWindow::on_pushButton_11_clicked(){ui->label_8->setAlignment(Qt::AlignCenter); //水平居中ui->label_8->setScaledContents(true); //设置标签自动缩放上面的图片ui->label_8->setPixmap(QPixmap("C:/Users/SuJieYin/Pictures/Saved Pictures/2.png")); ui->label_9->setAlignment(Qt::AlignCenter); //水平居中ui->label_9->setFixedSize(200,120); QMovie *m = new QMovie("C:/Users/SuJieYin/Pictures/Saved Pictures/1.gif"); ui->label_9->setMovie(m); //设置动画ui->label_8->setScaledContents(true); //设置标签自动缩放上面的图片m->start(); //开启动画//文本浏览框ui->textBrowser->setHtml(codec->toUnicode("\\\\菜鸟教程(runoob.com)\\\我的第一个标题\我的第一个段落。
\\")); //图形视图框架//日历ui->stackedWidget->setCurrentIndex(4); }//上一页【第4页】void MainWindow::on_pushButton_10_clicked(){ui->stackedWidget->setCurrentIndex(2); }//点击SpinBox显示LCDNumbervoid MainWindow::display(int i){ui->lcdNumber->setMinimumHeight(i); //设置最小行高}//水平滑动条void MainWindow::on_horizontalScrollBar_valueChanged(int value){ui->lcdNumber->display(value); //显示值}//垂直滚动条void MainWindow::on_verticalScrollBar_valueChanged(int value){ui->verticalScrollBar->setRange(0,100); ui->lcdNumber->display(value); //显示值}//水平滑动滚动条void MainWindow::on_horizontalSlider_valueChanged(int value){ui->lcdNumber->display(value); //显示值}//垂直滑动滚动条void MainWindow::on_verticalSlider_valueChanged(int value){ui->lcdNumber->display(value); //显示值}//==================================================//单击日历时显示void MainWindow::on_calendarWidget_clicked(const QDate &date){ui->textBrowser->setText(date.toString()); }//上一页void MainWindow::on_pushButton_15_clicked(){qDebug()<<"======================="<stackedWidget->setCurrentIndex(3); }//下一页void MainWindow::on_pushButton_14_clicked(){//GroupBox容器ui->radioButton->setChecked(true); //设置检查ui->verticalLayout_2->addStretch(1); //添加伸长ui->groupBox->setLayout(ui->verticalLayout_2); //添加垂直部件//ScrollArea滚动窗口容器ui->label_11->setPixmap(QPixmap("C:/Users/SuJieYin/Pictures/Saved Pictures/2.png")); ui->scrollArea->setWidget(ui->label_11); //添加这个标签组件ui->horizontalLayout_3->addWidget(ui->scrollArea); //添加进水平部件setLayout(ui->horizontalLayout_3); //显示这个水平部件//Tool Box工具箱ui->toolBox->addItem(ui->textEdit_5,codec->toUnicode("工具1")); ui->toolBox->addItem(ui->textEdit_6,codec->toUnicode("工具2")); //TabWidget 选项卡-分页显示ui->tabWidget->setTabsClosable(true); //关闭ui->tabWidget->addTab(ui->textEdit_7,"T"); ui->tabWidget->addTab(ui->textEdit_8,"B"); //点击X号后显示对应的文本connect(ui->tabWidget,&QTabWidget::tabCloseRequested,[&](int x){ui->textEdit_7->append(QString::number(x).toUtf8()); ui->textEdit_8->append(QString::number(x).toUtf8()); }); //stackedWidget 堆叠窗口类//本教程使用的就是这个部件,来达到上一页和下一页之间的切换,不在过多解释//MdiArea 多媒体窗口ui->mdiArea->addSubWindow(ui->textEdit_9); //添加子窗口ui->mdiArea->addSubWindow(ui->textEdit_10); ui->stackedWidget->setCurrentIndex(5); }//上一页void MainWindow::on_pushButton_17_clicked(){ui->stackedWidget->setCurrentIndex(4); }


【4】ui界面设计 对象和类的布局和定义位置,位置很重要
QT中大部分部件如何使用举例详解
文章图片

QT中大部分部件如何使用举例详解
文章图片

QT中大部分部件如何使用举例详解
文章图片


【5】代码运行效果图 文件对话框,加密,显示在第一页
QT中大部分部件如何使用举例详解
文章图片

6大对话框在第二页
QT中大部分部件如何使用举例详解
文章图片

【QT中大部分部件如何使用举例详解】按钮类举例
QT中大部分部件如何使用举例详解
文章图片

输入小部件类和显示文本部件类和滑动部件类
QT中大部分部件如何使用举例详解
文章图片

日期,文本框,图片,gif图
QT中大部分部件如何使用举例详解
文章图片

容器部件类使用举例
QT中大部分部件如何使用举例详解
文章图片


总结 在后期,我将QT全部学习内容,做成应用程序游戏软件,以软件的形式活学活用,工程庞大,目前正在筹划,尽情期待

    推荐阅读