QT中的部件怎么使用
导读:本文共8232字符,通常情况下阅读需要27分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要:接下来,请跟着小编一起来学习吧!【1】main.cpp#include"mainwindow.h"include<QApplication>intmain(intargc,char*argv[]){QApplicationa(argc,argv);MainWindoww;w.show();returna.exec();}【2】mainwindow.h... ...
目录
(为您整理了一些要点),点击可以直达。接下来,请跟着小编一起来学习吧!
【1】main.cpp
#include"mainwindow.h"include<QApplication>
intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
MainWindoww;
w.show();
returna.exec();
}
【2】mainwindow.h
#ifndefMAINWINDOW_HdefineMAINWINDOW_H
include<QPushButton>
include<QMainWindow>
include<QTextCodec>//解决字符编码乱码问题
include<QTextEdit>
include<QSlider>//滑动杆
QT_BEGIN_NAMESPACE
namespaceUi{classMainWindow;}
QT_END_NAMESPACEclassMainWindow:publicQMainWindow
{
Q_OBJECTpublic:
MainWindow(QWidget*parent=nullptr);
~MainWindow();publicslots:
privateslots:
voidtextbutton_1();
voidon_PBT_clicked();
voidon_PBJ_clicked();
voidon_PBL_clicked();
voidon_pushButton_8_clicked();
voidon_pushButton_9_clicked();
voidon_pushButton_11_clicked();
voidon_pushButton_13_clicked();
voidon_pushButton_12_clicked();
voidon_pushButton_10_clicked();
voiddisplay(int);
voidon_horizontalScrollBar_valueChanged(intvalue);
voidon_verticalScrollBar_valueChanged(intvalue);
voidon_horizontalSlider_valueChanged(intvalue);
voidon_verticalSlider_valueChanged(intvalue);
voidon_calendarWidget_clicked(constQDate&date);
voidon_pushButton_15_clicked();
voidon_pushButton_14_clicked();
voidon_pushButton_17_clicked();private:
Ui::MainWindowui;
QTextCodeccodec;
QStringfilename;QPushButtonbt_filename;
QPushButtonbt_getcolor;
QPushButtonbt_getfont;
QPushButtonbt_getinput;
QPushButtonbt_error;
QPushButtonbt_message;
QPushButtonbt_progress;
QTextEditte_test;QPushButtonp1;
QScrollBarsb;};
endif//MAINWINDOW_H
【3】mainwindow.cpp
#include"mainwindow.h"include"ui_mainwindow.h"
include<QString>
include<QProgressBar>//进度条头文件
include<QDebug>//控制台输出
//==========================布局管理器
include<QVBoxLayout>//水平
include<QHBoxLayout>//垂直
include<QGridLayout>//网格
//==========================各大对话框类
include<QColorDialog>
include<QFileDialog>
include<QInputDialog>
include<QErrorMessage>
include<QProgressDialog>
include<QFontDialog>
include<QFileDialog>
include<QMessageBox>
//文件读写
include<QFile>
//行编辑
include<QLineEdit>
//滚动条
include<QScrollBar>
//标签显示动画
include<QMovie>
MainWindow::MainWindow(QWidget*parent)
:QMainWindow(parent)
,ui(newUi::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,[&]{QStringfilename=
QFileDialog::getOpenFileName();ui->textEdit_3->append(filename);});//颜色对话框
connect(ui->pushButton_3,&QPushButton::clicked,[&](){
QColorcolor=QColorDialog::getColor();
ui->textEdit_3->setTextColor(color);
});//字体对话框
boolok;
connect(ui->pushButton_4,&QPushButton::clicked,[&](){QFontfont=QFontDialog::getFont(&ok);
if(ok)
{
ui->textEdit_3->setCurrentFont(font);
}
});//输入对话框
connect(ui->pushButton_5,&QPushButton::clicked,[&](){
QStringstr=QInputDialog::getText(this,"Title","input");
ui->textEdit_3->append(str);
});
//信息对话框
connect(ui->pushButton_6,&QPushButton::clicked,[&](){
intret=QMessageBox::information(this,"Title","youyyds",QMessageBox::Ok,QMessageBox::Apply,QMessageBox::Close);
if(ret==QMessageBox::Ok)
{
ui->textEdit_3->append("111111111111111111111111");
}
});
//错误对话框
connect(ui->pushButton_7,&QPushButton::clicked,[&](){
QErrorMessage*error=newQErrorMessage;
error->showMessage("errorerrorerror");
});}
MainWindow::~MainWindow()
{
deleteui;}
//浏览按钮
voidMainWindow::on_PBL_clicked()
{
filename=QFileDialog::getOpenFileName();//文件对话框
ui->lineEdit->setText(filename);
}//加密按钮
voidMainWindow::on_PBJ_clicked()
{
//读写文件打开
QFilef(filename);
if(!f.open(QIODevice::ReadWrite))
return;
//读取全部内容
QByteArraybuf=f.readAll();
ui->textEdit->append(codec->toUnicode(buf));//加密前
ui->progressBar->setRange(0,buf.length()-1);for(inti=0;i<buf.length();i++)
{
buf[i]=~buf[i];
ui->progressBar->setValue(i);//进度条
}
ui->textEdit_2->append(codec->toUnicode(buf));//加密后
//回写
f.seek(0);
f.write(buf);
//关闭
f.close();
}
//下一页
voidMainWindow::on_PBT_clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}//上一页:
voidMainWindow::on_pushButton_8_clicked()
{
ui->stackedWidget->setCurrentIndex(0);
}//下一页
voidMainWindow::on_pushButton_9_clicked()
{
ui->pushButton->setIconSize(QSize(80,80));//设置按钮图标大小
//ui->pushButton->setFlat(true);//设置无边框
ui->pushButton->setIcon(QIcon("C:/Users/SuJieYin/Pictures/SavedPictures/1.png"));
ui->pushButton->show();ui->toolButton->setIconSize(QSize(50,50));
//ui->toolButton->setIcon(QIcon("C:/Users/SuJieYin/Pictures/SavedPictures/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/SavedPictures/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/SavedPictures/1.png"));
connect(ui->checkBox_2,&QRadioButton::clicked,[&](){//lamda表达式(无名函数)
qDebug()<<"checkBox_2";
});//行编辑框使用举例
ui->lineEdit_2->setEchoMode(QLineEdit::Password);//行编辑框输入隐藏
//选中检查框,显示密码,
connect(ui->checkBox_3,&QCheckBox::clicked,&{
ui->lineEdit_2->setEchoMode(x?QLineEdit::Normal:QLineEdit::Password);
});ui->stackedWidget->setCurrentIndex(2);//显示这一页的所有部件
}//快捷键和单击按钮都可以触发
voidMainWindow::textbutton_1()
{
qDebug()<<"CTRL+w";
}//下一页:实现输入小部件类组件
voidMainWindow::on_pushButton_13_clicked()
{
//组合k框
ui->comboBox->addItem("com1");
ui->comboBox->addItem("com2");
//点击文本后,显示文本
connect(ui->comboBox,&QComboBox::currentTextChanged,&{
ui->label_5->setText(x);});//字体选择框
connect(ui->fontComboBox,&QFontComboBox::currentFontChanged,&{
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=newQScrollBar;//没有指定窗口,会自己弹出一个窗口;
sb=newQScrollBar(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);
}
//上一页
voidMainWindow::on_pushButton_12_clicked()
{
ui->stackedWidget->setCurrentIndex(1);
}//下一页【第5页】
voidMainWindow::on_pushButton_11_clicked()
{ui->label_8->setAlignment(Qt::AlignCenter);//水平居中
ui->label_8->setScaledContents(true);//设置标签自动缩放上面的图片
ui->label_8->setPixmap(QPixmap("C:/Users/SuJieYin/Pictures/SavedPictures/2.png"));ui->label_9->setAlignment(Qt::AlignCenter);//水平居中
ui->label_9->setFixedSize(200,120);
QMovie*m=newQMovie("C:/Users/SuJieYin/Pictures/SavedPictures/1.gif");
ui->label_9->setMovie(m);//设置动画
ui->label_8->setScaledContents(true);//设置标签自动缩放上面的图片
m->start();//开启动画//文本浏览框
ui->textBrowser->setHtml(codec->toUnicode("<!DOCTYPEhtml>\
<html>\
<head>\
<metacharset=\"utf-8\">\
<title>菜鸟教程(runoob.com)</title>\
</head>\
<body>\
<h2>我的第一个标题</h2>\
<p>我的第一个段落。</p>\
</body>\
</html>"));//图形视图框架
//日历
ui->stackedWidget->setCurrentIndex(4);
}
//上一页【第4页】
voidMainWindow::on_pushButton_10_clicked()
{
ui->stackedWidget->setCurrentIndex(2);
}//点击SpinBox显示LCDNumber
voidMainWindow::display(inti)
{
ui->lcdNumber->setMinimumHeight(i);//设置最小行高
}//水平滑动条
voidMainWindow::on_horizontalScrollBar_valueChanged(intvalue)
{
ui->lcdNumber->display(value);//显示值
}//垂直滚动条
voidMainWindow::on_verticalScrollBar_valueChanged(intvalue)
{
ui->verticalScrollBar->setRange(0,100);
ui->lcdNumber->display(value);//显示值
}//水平滑动滚动条
voidMainWindow::on_horizontalSlider_valueChanged(intvalue)
{
ui->lcdNumber->display(value);//显示值
}
//垂直滑动滚动条
voidMainWindow::on_verticalSlider_valueChanged(intvalue)
{
ui->lcdNumber->display(value);//显示值
}
//==================================================//单击日历时显示
voidMainWindow::on_calendarWidget_clicked(constQDate&date)
{
ui->textBrowser->setText(date.toString());
}//上一页
voidMainWindow::on_pushButton_15_clicked()
{
qDebug()<<"======================="<<endl;
ui->stackedWidget->setCurrentIndex(3);
}
//下一页
voidMainWindow::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/SavedPictures/2.png"));
ui->scrollArea->setWidget(ui->label_11);//添加这个标签组件
ui->horizontalLayout_3->addWidget(ui->scrollArea);//添加进水平部件
setLayout(ui->horizontalLayout_3);//显示这个水平部件//ToolBox工具箱
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,&{
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);
}//上一页
voidMainWindow::on_pushButton_17_clicked()
{
ui->stackedWidget->setCurrentIndex(4);
}
【4】ui界面设计
对象和类的布局和定义位置,位置很重要
【5】代码运行效果图
文件对话框,加密,显示在第一页
6大对话框在第二页
按钮类举例
输入小部件类和显示文本部件类和滑动部件类
日期,文本框,图片,gif图
容器部件类使用举例
若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!QT中的部件怎么使用的详细内容,希望对您有所帮助,信息来源于网络。