QT中的部件怎么使用(qt,开发技术)

时间:2024-04-29 03:14:25 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

接下来,请跟着小编一起来学习吧!

【1】main.cpp

#include"mainwindow.h"

include<QApplication>

intmain(intargc,char*argv[])
{
QApplicationa(argc,argv);
MainWindoww;
w.show();
returna.exec();
}

【2】mainwindow.h

#ifndefMAINWINDOW_H

defineMAINWINDOW_H

include<QPushButton>

include<QMainWindow>

include<QTextCodec>//解决字符编码乱码问题

include<QTextEdit>

include<QSlider>//滑动杆

QT_BEGIN_NAMESPACE
namespaceUi{classMainWindow;}
QT_END_NAMESPACE

classMainWindow:publicQMainWindow
{
Q_OBJECT

public:
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;
QTextCodec
codec;
QStringfilename;

QPushButtonbt_filename;
QPushButton
bt_getcolor;
QPushButtonbt_getfont;
QPushButton
bt_getinput;
QPushButtonbt_error;
QPushButton
bt_message;
QPushButtonbt_progress;
QTextEdit
te_test;

QPushButtonp1;
QScrollBar
sb;

};

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://&quot;);//显示文本
});

//自旋框
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界面设计

对象和类的布局和定义位置,位置很重要

QT中的部件怎么使用

QT中的部件怎么使用

QT中的部件怎么使用

【5】代码运行效果图

文件对话框,加密,显示在第一页

QT中的部件怎么使用

6大对话框在第二页

QT中的部件怎么使用

按钮类举例

QT中的部件怎么使用

输入小部件类和显示文本部件类和滑动部件类

QT中的部件怎么使用

日期,文本框,图片,gif图

QT中的部件怎么使用

容器部件类使用举例

QT中的部件怎么使用

若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!

本文:QT中的部件怎么使用的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:vue怎么自定义keepalive组件下一篇:

7 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18