qt-对话框

目录

1、对话框的概述:

2、文件对话框:

(1)、文件对话框打开一个文件

(2)、用文件对话框打开多个多个文件

3、颜色对话框: 

4、字体对话框:

 5、消息对话框:

 6、输入对话框:

7、完善几个按钮的大小 :

8、程序最终的运行结果:


1、对话框的概述:

特性:如果 parent 为 NULL,则该对话框会作为一个顶层窗口,否则则作为其父组件的子对话框(此时,其默认出现的位置是 parent的中心)。

分类:对话框分为模态对话框和非模态对话框。

模态对话框:会阻塞同一应用的其他窗口的输入。

非模态对话框:不会阻塞其他窗口。

头文件<QDialog>

2、文件对话框:

用文件对话框来打开一个或者多个文件。

(1)、文件对话框打开一个文件

头文件是QFileDialog,使用的函数是头文件下的getOpenFileName

//文件对话框打开一个文件
void MainWindow::on_pushButton_clicked()
{   //定义一个字符串来接收getOpenFileName函数的返回值
    //getOpenFileName(this,tr(文件对话框的名称),"路径",tr(图片的格式;;文件的格式))
    QString fileName=QFileDialog::getOpenFileName(this,tr("打开文件"),"./",
                                                  tr("image(*.png *.xpm *.jpg);;Text(*.txt)"));
    if(!fileName.isEmpty())
    {   //如果返回的字符串不是空就把路径输出到文本编辑器
        ui->plainTextEdit->appendPlainText(fileName);
    }
}

运行结果: 

(2)、用文件对话框打开多个多个文件

头文件是QFileDialog,使用的函数是头文件下的getOpenFileNames

//文件对话框打开多个文件
void MainWindow::on_pushButton_2_clicked()
{
    QStringList files =QFileDialog::getOpenFileNames(this,"打开文件","./","Image(*.png *.xpm *.jpg)");
    for(int i = 0;i<files.count();i++)
    {   //files.count()函数是当前文件的个数
         ui->plainTextEdit->appendPlainText(files.at(i));
    }
}

运行截图:

 

3、颜色对话框: 

颜色对话框的头文件QColorDialog

void MainWindow::on_pushButton_3_clicked()
{   //获取现有的调色板
    QPalette pal =ui->plainTextEdit->palette();
    //现有文字颜色
    QColor inicolor =pal.color(QPalette::Text);

    QColor color=QColorDialog::getColor(inicolor,this,"选择颜色");

    //判断选择颜色是否有效,如果有效重新设置编辑器颜色
    if(color.isValid())
    {
        //将现在选择的颜色给文本编辑器
        pal.setColor(QPalette::Text,color);
        ui->plainTextEdit->setPalette(pal);
    }

}

运行结果: 

4、字体对话框:

字体对话框的头文件QFontDialog

void MainWindow::on_pushButton_4_clicked()
{
    bool ok;
    QFont iniFont = ui->plainTextEdit->font();
    //获取原有的文本字体,没有设置字体的情况下
    QFont font = QFontDialog::getFont(&ok,iniFont,this);
    //设置默认的字体12
    if(ok)//如果ok=true说明选择字体有效反之无效
    {
        ui->plainTextEdit->setFont(font);
        //有效字体设置
    }

}

运行结果:

 

 5、消息对话框:

消息对话框的头文件是QMessageBox

void MainWindow::on_pushButton_5_clicked()
{
   //错误的弹窗
    QMessageBox::critical(this,"critical对话框","程序出现错误");
    //警告弹窗
    QMessageBox::warning(this,"warning对话框","程序出现警告");
    //消息弹窗
    QMessageBox::information(this,"消息框","程序一切正常",QMessageBox::Ok,QMessageBox::NoButton);
    //aboutQt弹窗
    QMessageBox::aboutQt(this,"about对话框""程序关于");
    //选择弹窗
    QMessageBox::StandardButton result;
    result=QMessageBox::question(this,"选择消息框","文件已修改,是否保存",QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel);
    if(result == QMessageBox::Yes)
    {
        qDebug()<<"正在保存";
    }

    if(result == QMessageBox::No)
    {
        qDebug()<<"不保存";
    }

    if(result == QMessageBox::Cancel)
        qDebug()<<"取消操作";
}

运行结果:

 

 6、输入对话框:

输入对话框的头文件QInputDialog。

void MainWindow::on_pushButton_6_clicked()
{
    //生成输入文字对话框
    bool ok;
   QString text= QInputDialog::getText(this,tr("输入文字对话框"),tr("请输入文字"),
                                       QLineEdit::Normal,"demo",&ok);
   if(ok && !text.isEmpty())
   {
       ui->plainTextEdit->appendPlainText(text);
   }
}

 运行结果:

7、完善几个按钮的大小 :

 setFixedSize(800,600);
    ui->setupUi(this);
    ui->pushButton->setFixedSize(100,30);
    ui->pushButton_2->setFixedSize(100,30);//设置俩个按钮的大小
    ui->plainTextEdit->setFixedSize(400,400);//设置文本编辑器大小
    ui->pushButton_3->setFixedSize(100,30);//颜色对话框的大小
    ui->pushButton_4->setFixedSize(100,30);//字体对话框的大小
    ui->pushButton_5->setFixedSize(100,30);//消息对话框的大小
    ui->pushButton_6->setFixedSize(100,30);//输入对话框的大小

8、程序最终的运行结果:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值