Qt对话框部分学习
一、对话框部分常用内容
颜色对话框、文件对话框、字体对话框、输入对话框、消息对话框、进度对话框、错误对话框、向导对话框。
二、代码部分
//widget.h
#ifndef MYWIDGET_H
#define MYWIDGET_H #include <QWidget>
#include <QWizard> namespace Ui {
class MyWidget;
} class MyWidget : public QWidget
{
Q_OBJECT public:
explicit MyWidget(QWidget *parent = );
~MyWidget(); private slots:
void on_pushButton_clicked(); void on_pushButton_4_clicked(); void on_pushButton_2_clicked(); void on_pushButton_5_clicked(); void on_pushButton_3_clicked(); void on_pushButton_6_clicked(); void on_pushButton_7_clicked(); void on_pushButton_8_clicked(); private:
Ui::MyWidget *ui;
QWizardPage *createPage1();
QWizardPage *createPage2();
QWizardPage *createPage3();
}; #endif // MYWIDGET_H //widget.cpp
#include "mywidget.h"
#include "ui_mywidget.h"
#include <QDebug>
#include <QColorDialog>
#include <QFileDialog>
#include <QFontDialog>
#include <QInputDialog>
#include <QMessageBox>
#include <QProgressDialog>
#include <QErrorMessage>
#include <QWizard> MyWidget::MyWidget(QWidget *parent) :
QWidget(parent),
ui(new Ui::MyWidget)
{
ui->setupUi(this);
} MyWidget::~MyWidget()
{
delete ui;
} //颜色对话框
void MyWidget::on_pushButton_clicked()
{
// QColor color = QColorDialog::getColor(Qt::red, this, tr("颜色对话框"), QColorDialog::ShowAlphaChannel);
// qDebug()<<"color: "<<color;
QColorDialog dialog(Qt::red, this);
dialog.setOption(QColorDialog::ShowAlphaChannel);
dialog.exec();
QColor color = dialog.currentColor();
qDebug()<<"color:"<<color; } //文本对话框
void MyWidget::on_pushButton_4_clicked()
{
QString filename = QFileDialog::getOpenFileName(this, tr("文件对话框"), "E:", tr("文本文件(*txt)"));
qDebug()<<"fileName:"<<filename;
} //字体对话框
void MyWidget::on_pushButton_2_clicked()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, this);
if(ok) ui->pushButton_2->setFont(font);
else qDebug()<<tr("没有选择字体!");
} //输入对话框
void MyWidget::on_pushButton_5_clicked()
{
bool ok;
QString string = QInputDialog::getText(this, tr("输入字符串对话框"),
tr("请输入用户名:"), QLineEdit::Normal, tr("admin"), &ok);
if(ok) qDebug()<<"string:"<<string;
//获取整数
int value1 = QInputDialog::getInt(this, tr("输入整数对话框"),
tr("请输入-1000到1000之间的数值"), , -, , , &ok);
if(ok) qDebug()<<"value1:"<<value1;
//获取浮点数
double value2 = QInputDialog::getDouble(this, tr("输入浮点数对话框"),
tr("请输入-1000到1000之间的数值"), 0.00, -, , , &ok);
if(ok) qDebug()<<"value2:"<<value2;
QStringList items;
items<<tr("条目1")<<tr("条目2");
//获取条目
QString item = QInputDialog::getItem(this, tr("输入条目对话框"),
tr("请选择一个条目"), items, , true, &ok);
if(ok) qDebug()<<"item:"<<item;
} //消息对话框
void MyWidget::on_pushButton_3_clicked()
{
//问题对话框
int ret1 = QMessageBox::question(this, tr("问题对话框"),
tr("你了解Qt吗?"), QMessageBox::Yes, QMessageBox::No);
if(ret1 == QMessageBox::Yes) qDebug()<<tr("问题!"); //提示对话框
int ret2 = QMessageBox::information(this, tr("提示对话框"),
tr("这是Qt书籍!"), QMessageBox::Ok);
if(ret2 == QMessageBox::Ok) qDebug()<<tr("提示!"); //警告对话框
int ret3 = QMessageBox::warning(this, tr("警告对话框"),
tr("不能提前结束!"), QMessageBox::Abort);
if(ret3 == QMessageBox::Abort) qDebug()<<tr("警告!"); //错误对话框
int ret4 = QMessageBox::critical(this, tr("严重错误对话框"),
tr("发现一个严重错误!现在要关闭所有文件!"), QMessageBox::YesAll);
if(ret4 == QMessageBox::YesAll) qDebug()<<tr("错误!"); //关于对话框
QMessageBox::about(this, tr("关于对话框"),
tr("yafeilinux.com致力于Qt及Qt Creator的普及工作!"));
} //进度对话框
void MyWidget::on_pushButton_6_clicked()
{
QProgressDialog dialog(tr("文件复制进度"), tr("取消"), , , this);
dialog.setWindowTitle(tr("进度对话框"));
dialog.setWindowModality(Qt::WindowModal);
dialog.show(); for(int i=;i<;i++) {
dialog.setValue(i);
QCoreApplication::processEvents();
if(dialog.wasCanceled()) break;
} dialog.setValue();
qDebug()<<tr("复制结束!");
} //错误对话框
void MyWidget::on_pushButton_7_clicked()
{
QErrorMessage *dialog = new QErrorMessage(this);
dialog->setWindowTitle(tr("错误信息对话框"));
dialog->showMessage(tr("这里是出错信息!"));
} QWizardPage *MyWidget::createPage1()
{
QWizardPage *page = new QWizardPage;
page->setTitle(tr("介绍"));
return page;
} QWizardPage *MyWidget::createPage2()
{
QWizardPage *page = new QWizardPage;
page->setTitle(tr("用户选择信息"));
return page;
} QWizardPage *MyWidget::createPage3()
{
QWizardPage *page = new QWizardPage;
page->setTitle(tr("结束"));
return page;
} //相对对话框
void MyWidget::on_pushButton_8_clicked()
{
QWizard wizard(this);
wizard.setWindowTitle(tr("向导对话框"));
wizard.addPage(createPage1());
wizard.addPage(createPage2());
wizard.addPage(createPage3());
wizard.exec();
}
main.cpp:
#include "mywidget.h"
#include <QApplication> int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show(); return a.exec();
}
ui样子
Qt对话框部分学习的更多相关文章
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- Qt 智能指针学习(7种指针)
Qt 智能指针学习 转载自:http://blog.csdn.net/dbzhang800/article/details/6403285 从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ ...
- 第15.10节 PyQt(Python+Qt)入门学习:Qt Designer可视化设计界面组件与QWidget类相关的组件属性详解
PyQt学习有阵子了,对章节的骨架基本考虑好了,准备本节就写组件的属性的,结果一是日常工作繁忙,经常晚上还要加班,二是Qt的组件属性很多,只能逐一学习.研究和整理,花的时间有点长,不过终于将可视化设计 ...
- 【Qt官方例程学习笔记】Application Example(构成界面/QAction/退出时询问保存/用户偏好载入和保存/文本文件的载入和保存/QCommandLineParser解析运行参数)
The Application example shows how to implement a standard GUI application with menus, toolbars, and ...
- QGis、Qt对话框上的OK、Open、Cancel、Help等英文翻译
成功编译qgis,启动程序发现对话框上的OK.Open.Cancel.Help等依然是英文字段,然后查找源码看这些字段是否都添加到了语言翻译包中: 最后发现这些按钮都是qt的QTGui4库中的QDia ...
- QT 对话框一
标准文件对话框 其函数形式如下:: QString QFileDialog::getOpenFileName ( QWidget * parent=, const QString &capti ...
- Qt 对话框显示控制按钮
在对话框窗体构造函数加入 SystemDialog::SystemDialog(QWidget *parent) : QDialog(parent), ui(new Ui::SystemDialog) ...
- QT对话框模式与非模式
QT模态对话框及非模态对话框 非模态对话框(Modeless Dialog)的概念不是模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于在模态来显示对 ...
随机推荐
- vim编辑器的使用技巧——忽略字母大小写
一忽略字母大小写临时生效 底行模式 底行模式下输入set ic 注意ic是ignorecase的缩写 命令模式 命令模式进行关键字搜索 二忽略字母大小写永久生效 保存到配置文件里面,默认是没有此配置 ...
- SQL server 2008 数据库优化常用脚本
--查询某个数据库的连接数 select count(*) from Master.dbo.SysProcesses where dbid=db_id() --前名其他等待类型 * from sys. ...
- 北风设计模式课程---UML类图各符号含义
北风设计模式课程---UML类图各符号含义 一.总结 一句话总结: 用脑子,挺好记的:实线关系肯定比虚线重,箭头.三角形.菱形的关系肯定依次加重,三角形是继承和实现, 1.UML类图中 线+箭头 表示 ...
- LINUX为什么要进行内核移植 内核移植的作用
LINUX为什么要进行内核移植 内核移植的作用,不移植能用么? LZ的问题应该是为什么要重新编译内核吧.既然你已经可以跑了,证明你现在用的内核已经移植到你用的硬件上,自然你也不需要做什么移植.通常 ...
- django manager
django manager 在语句Book.objects.all()中,objects是一个特殊的属性,需要通过它查询数据库. 总之,模块manager是一个对象,Django模块通过它进行数据库 ...
- CodeForces 593D Happy Tree Party
题目链接: http://codeforces.com/problemset/problem/593/D ----------------------------------------------- ...
- HTML最全标签
一.HTML标记 标签:!DOCTYPE 说明:指定了 HTML 文档遵循的文档类型定义(DTD). 标签:a 说明:标明超链接的起始或目的位置. 标签:acronym 说明:标明缩写词. ...
- 如何在vue里面调用高德地图
1.修改webpac.base.conf.js文件 与module同一级添加 externals: { 'AMap': 'AMap', 'AMapUI': 'AMapUI' }配置. 然后在index ...
- 基于Java Agent的premain方式实现方法耗时监控(转),为了找到结论执行:premain在jvm启动的时候执行,所有方法前,会执行MyAgent的premain方法
Java Agent是依附于java应用程序并能对其字节码做相关更改的一项技术,它也是一个Jar包,但并不能独立运行,有点像寄生虫的感觉.当今的许多开源工具尤其是监控和诊断工具,很多都是基于Java ...
- chromedriver安装报错
解决方法: 可以使用 npm init -f命令生成package.json,package.json中缺少的字段可以参照模板 package.json进行填充,package.json中的字段 ...