QT控件之对话框

对话框

文件对话框

 

添加头文件#include<QFileDialog>

QfileDialog类有很多方法,可以静态使用,也可以实例化使用。

常用的有以下这些:

QFileDialog::getOpenFileName();选择打开文件路径

QFileDialog::getSaveFileName();选择保存路径

QFileDialog::getExistingDirectory();选择文件夹

返回的是整个路径。

QFileDialog::selectFile();

QFileDialog::setWindowTitle();

例如:

QFileDialog::getSaveFileName();

参数为:

父句柄,一般为0。

标题:字符串

路径:可以为空,打开的对话框定为到最后一个/,把最后的字符串作为文件名。

过滤器:"Image Files(*.bmp *.jpg)"

01. fileName =QFileDialog::getSaveFileName(this, tr("title"),”/root/a.bmp”,"Image Files (*.bmp)");
02. if (!fileName.isNull())
03. {
04. QString path =fileName;
05. QFile f(path);
06. f.open(QIODevice::ReadWrite);//打开文件
07. f.write(bmp);
08. f.close();
09. num++;
10. }

 

01. void Form1::opendialog()
02. {
03. QString file name=QFileDialog::getOpenFileName(
04. 0,
05. "open the file",
06. QDir::home().dirName(),
07. "file(*.bmp *.jpg)",
08. 0,
09. 0);
10. ui->label->setText(filename);
11. }


 

 

输入框QinputDialog

头文件

#include<QInputDialog>

主要由四种方法:getText(),getInt(),getDouble()和getItem()

 

01. voidForm1::inputdialog()
02. {
03. QString text;
04. bool ok;
05. text=QInputDialog::getText(
06. this,
07. tr("UserName"),
08. tr("Please input newname"),
09. QLineEdit::Normal,
10. QDir::home().dirName(),
11. &ok);
12. if(ok&&!text.isEmpty())
13. {
14. ui->label->setText(text);
15. }
16. }


 

 

 

颜色框

#include<QColorDialog>

 

01. void Form1::colordialog()
02. {
03. QColor color=QColorDialog::getColor(Qt::green,this);
04. if(color.isValid())
05. {
06. ui->label->setText(color.name());
07. ui->label->setPalette(QPalette(color));
08. ui->label->setAutoFillBackground(true);
09. }
10. }

 

第1句创建标准颜色选择对话框。

第2句判断颜色是否有效。

第3句设置colorLabel显示的文本是用户从标准颜色对话框中选择的颜色的名字。

第4句通过setPalette()方法设置colorLabel的调色板信息。setPalette()方法经常用于此

种场合。

第5句也很重要,setAutoFillBackground()方法用于设置窗体能够自动填充背景。

 

字体框

 

01. void Form1::fontdialog()
02. {
03. bool ok;
04. QFont font = QFontDialog::getFont(&ok,QFont("Times",12),this);
05. if(ok)
06. {
07. ui->label->setFont(font);
08. }
09. else
10. {
11.  
12. }
13.  
14. }

 

\

 

 

信息提示框

在程序开发中,经常会遇到各种各样的消息框来给用户一些提示或提醒,Qt提供了QMessageBox类来实现此项功能。在使用QMessageBox类之前,应加入其头文件声明:

#include<QMessageBox>

QT提供了Question消息框、Information消息框、Warning消息框、Critical消息框、About消息框、AboutQt(关于Qt)消息框以及Custom(自定义)消息框等。

Question消息框、Information消息框、Warning消息框和Critical消息框的用法大同小异,这些消息框一般都包含一条提示信息、一个图标以及若干个按钮,它们的作用都是给用户提供一些提醒或一些简单的询问。

消息框的返回值是一个QMessageBox::StandardButton,这是一个枚举量,它包含了QMessageBox类默认提供的按钮提示信息,如OK、Help、Yes、No、Abort、Retry、Ignore等。

例如:

参数是(this,标题,内容,按钮列表,选择默认把焦点移动哪个按钮上)

 

01. void Form1::messdialog()
02. {
03. switch(QMessageBox::question(
04. this,
05. "titile",
06. "detail",
07. QMessageBox::Ok|QMessageBox::No,
08. QMessageBox::Ok)
09. )
10. {
11. case QMessageBox::Ok:
12. ui->label->setText("ok");
13. break;
14. case QMessageBox::No:
15. ui->label->setText("no");
16. break;
17. default:
18.  
19. break;
20. }
21. }

 

不带标题栏

QmessageBox mgb;

mgb.setWIndowFlags(Qt::FrameLessTopHint);

mgb.exec();

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值