QT学习——day7

QT学习——day7

对话框界面

对话框界面的模态显示
 TestDialog *dlg=new TestDialog(this);
//     //Dialog窗口不能依附父窗口实现,只能单独显示
//     //模态,exec()阻塞程序的执行,进行模态显示
  dlg->exec();
对话框模态显示的关闭

对话框的模态显示需调用函数.exec(),该函数的返回值为int类型。

1.第一种模态对话框的关闭(隐藏)方式:ACCepted();

调用该函数实现将当前的对话框窗口隐藏,且对应的枚举值为1,意味着当执行该函数时.exec()函数生命周期结束,且返回值为int 1。

2.第二种模态对话框的关闭(隐藏)方式:REjected();

调用该函数实现将当前的对话框窗口隐藏,且对应的枚举值为0,意味着当执行该函数时.exec()函数生命周期结束,且返回值为int 0。

3…第二种模态对话框的关闭(隐藏)方式:done(int);

调用该函数实现将当前的对话框窗口关闭,且该函数中传参的值决定.exec()函数的返回值为多少,即若传参为int 1,则实现ACCepted方法,若传参为int 0,即实现REjected方法。若传参为其他int型,则.exec()函数将返回对应的值,并将对话框关闭 。

QMessageBox(消息对话框)

QMessageBox是基于对话框类的一类弹出窗口,有icon,title,text,button四个属性,并且可以根据需求进行修改。

实例如下:这段代码中演示了常见的四种弹出窗口:

void Mywidget::on_jumpbtn_clicked()
{
    //第一个参数为指向父窗口的指针
    //第二个参数为title值
    //第三个为text值
    QMessageBox::about(this,"关于","一个消息的提示框");//about窗口,icon与父窗口的icon相同
    QMessageBox::critical(this,"错误!","这是一个错误!");//进行错误提示,icon固定
    if(QMessageBox::question(this,"问题?","要这样做吗?",QMessageBox::Save|QMessageBox::Cancel,QMessageBox::Save)==QMessageBox::Save)//询问窗口,返回值为QMessageBox,可以根据用户的选择进行判断,第四个参数为button的枚举,有多种类型提供修改,第五个参数是默认选中的按钮。
    {
                             QMessageBox::information(this,"信息提示","那就这样吧");
}//信息提示窗口

    else {
        QMessageBox::warning(this,"警告!!!","怎么可以这样!!!");//警告窗口
    }
}
QFileDialog(文件操作窗口)

基于QDialog的文件操作窗口,通常返回值都是QString(文件所在路径)。此处转载苏老师笔记(侵删)。

/*
通用参数:
	- parent: 当前对话框窗口的父对象也就是父窗口
	- caption: 当前对话框窗口的标题
	- dir: 当前对话框窗口打开的默认目录
	- options: 当前对话框窗口的一些可选项,枚举类型, 一般不需要进行设置, 使用默认值即可
	- filter: 过滤器, 在对话框中只显示满足条件的文件, 可以指定多个过滤器, 使用 ;; 分隔
		- 样式举例: 
			- Images (*.png *.jpg)
			- Images (*.png *.jpg);;Text files (*.txt)
	- selectedFilter: 如果指定了多个过滤器, 通过该参数指定默认使用哪一个, 不指定默认使用第一个过滤器
*/
// 打开一个目录, 得到这个目录的绝对路径
[static] QString QFileDialog::getExistingDirectory(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), QFileDialog::Options options = ShowDirsOnly);

// 打开一个文件, 得到这个文件的绝对路径
[static] QString QFileDialog::getOpenFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options());

// 打开多个文件, 得到这多个文件的绝对路径
[static] QStringList QFileDialog::getOpenFileNames(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options());

// 打开一个目录, 使用这个目录来保存指定的文件
[static] QString QFileDialog::getSaveFileName(QWidget *parent = nullptr, const QString &caption = QString(), const QString &dir = QString(), const QString &filter = QString(), QString *selectedFilter = nullptr, QFileDialog::Options options = Options());

实例化演示:

void Mywidget::on_filebtn_clicked()
{

    QStringList filenames=QFileDialog::getOpenFileNames(
                this,tr("打开文件"),"F:\\流光拾贝",tr("(*.png);;(*.jpg)"));
    QString names;
    for(int i=0;i!=filenames.size();++i)
    {
        names+=filenames.at(i);
    }
    QMessageBox::about(this,"文件输出","该目录中的文件名为:"+names);
}
QFontDialog(字体对话框)

1.调用静态成员函数进行字体修改。

2.获取一个实例化的对象。

3.调用setFont( QFont)函数对指定窗口中的字体进行字体修改。

void Mywidget::on_settextbtn_clicked()
{
    bool ok;//字体是否被修改的布尔值
    QFont font = QFontDialog::getFont(&ok, QFont("Times", 12), this);
    if (ok) {//返回的是true
       ui->label->setFont(font);//修改当前窗口中的字体
        // QApplication::setFont(font);改变所有窗口里的字体
    } else {
       QMessageBox::warning(this,"警告!","字体未修改!");
    }
}

你可能感兴趣的:(qt,c++)