【qt】一次性学会所有对话框2

简介: 【qt】一次性学会所有对话框

【qt】一次性学会所有对话框1:https://developer.aliyun.com/article/1523160

三.颜色对话框

1.获取颜色

void MainWindow::on_pushButtonColoe_clicked()
{
    QPalette plet=ui->plainTextEdit->palette();//拿到纯文本编辑器
    QColor currentColor=plet.color(QPalette::Text);//拿到文本颜色
    
    QColor color=QColorDialog::getColor(
                currentColor,//默认选中颜色
                this,
                "颜色选择框");
    if(color.isValid())
    {
        plet.setColor(QPalette::Text,color);//修改成选择的颜色
        ui->plainTextEdit->setPalette(plet);//设置到纯文本中
    }
}

运行结果:

四.字体对话框

1.获取字体

void MainWindow::on_pushButtonFont_clicked()
{
    bool ok=false;
    QFont font=QFontDialog::getFont(
                         &ok,//判断是否选择成功
                         ui->plainTextEdit->font(),//对话框默认字体
                         this,
                         "字体选择框");
    if(ok)
    {
        ui->plainTextEdit->setFont(font);
    }
}

参数我也记不住,一定要看在线文档呀

运行结果:

五.输入对话框

1.输入文本

void MainWindow::on_pushButtonString_clicked()
{
    bool ok=false;
    QString str=QInputDialog::getText(
                this,
                "输入文本框",
                "请输入姓名:",
                QLineEdit::Normal,//输入的方式
                "姚国林",//默认值
                &ok);//判断是否成功
    if(ok&&!str.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(str);
    }
}

运行结果:

这里的输入方式有4种

NoEcho就是没有回显的,类似于Linux操作系统里输入密码

Password就是正常的*******这种

最后一个就是,当输入密码时显示,不输入的时候 ******

2.输入整数

void MainWindow::on_pushButtonInt_clicked()
{
    bool ok=false;
    //我这里是输入整数打算与字体大小关联起来
    int value =QInputDialog::getInt(
                this,
                "整数输入框",
                "请输入字体大小:",
                ui->plainTextEdit->font().pixelSize(),//默认输入的大小
                8,//最小值
                80,//最大值
                1,//单步值
                &ok);
    if(ok)
    {
        QFont font=ui->plainTextEdit->font();
        font.setPointSize(value);
        ui->plainTextEdit->setFont(font);
    }
}

运行结果:

3.输入小数

void MainWindow::on_pushButtonFloat_clicked()
{
    bool ok=false;
    double value=QInputDialog::getDouble(
                this,
                "输入浮点数框",
                "输入小数:",//前缀
                3.14,//默认值
                0,//最小值
                999,//最大值
                2,//精度
                &ok);
    if(ok)
    {
        QString str=QString::asprintf("输入了一个浮点数:%.2f",value);
        ui->plainTextEdit->appendPlainText(str);
    }
}

运行结果:

4.输入条目

void MainWindow::on_pushButtonItem_clicked()
{
    bool ok=false;
    QStringList jobs={"老师","医生","炊事员","程序员"};
    QString job= QInputDialog::getItem(
                this,
                "输入条目框",
                "请选择职业:",
                jobs,//条目列表
                0,//默认显示第几个
                true,//是否能进行编辑
                &ok);
    if(ok&&!job.isEmpty())
    {
        ui->plainTextEdit->appendPlainText(job);
    }
                
}

运行结果:

六.消息对话框

1.问题框

void MainWindow::on_pushButtonQuestion_clicked()
{
    QMessageBox::StandardButton ret= QMessageBox::question(//返回的是一个标准按钮
                this,
                "问题框",
                "你承认你是一个帅哥吗?",//问题框内容
                QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel,//选择的按钮
                QMessageBox::NoButton);//默认的选择
    
    if(ret==QMessageBox::Yes)
    {
        ui->plainTextEdit->appendPlainText("选择了 YES");
    }
    else if(ret==QMessageBox::No)
    {
        ui->plainTextEdit->appendPlainText("选择了 No");
    }
    else if(ret==QMessageBox::Cancel)
    {
        ui->plainTextEdit->appendPlainText("选择了 Cancel");
    }
    else
    {
        ui->plainTextEdit->appendPlainText("什么也没有选择");
    }
}

运行结果:

2.信息框

void MainWindow::on_pushButtonInformation_clicked()
{
    QMessageBox::information(
                this,
                "消息框",
                "你居然不给我点关注",
                QMessageBox::Ok,
                QMessageBox::NoButton);
}

运行结果:

3.警告框

void MainWindow::on_pushButtonWarning_clicked()
{
    QMessageBox::warning(
                this,
                "警告框",
                "你要完蛋了!");
}

运行结果:

4.危机框

void MainWindow::on_pushButtonCritical_clicked()
{
    QMessageBox::critical(
                this,
                "危机框",
                "你完蛋了!系统姚重启了");
}

运行结果:

5.关于框

void MainWindow::on_pushButtonAbout_clicked()
{
    QMessageBox::about(
                this,
                "关于框",
                "我是一位天才,我的能力十分强悍!");
}

运行结果:

6.关于qt框

void MainWindow::on_pushButtonAboutQt_clicked()
{
    QMessageBox::aboutQt(
                this,
                "关于Qt");
}

运行结果:

七.总结

虽然对话框的种类虽多,但是一类的用法基本差不多,重要的是我们要记住接口就行了,参数不要背,看在线文档!

对了,这里姚用到这些头文件:

慢慢成长,慢慢成为大

相关文章
|
8月前
|
Linux iOS开发 MacOS
19 QT - 标准文件对话框
19 QT - 标准文件对话框
40 0
|
19天前
Qt之对话框
Qt之对话框
15 6
|
19天前
Qt消息对话框
Qt消息对话框
122 3
|
19天前
Qt颜色、文件、字体对话框
Qt颜色、文件、字体对话框
14 1
Qt (QFileDialog&QColorDialog&QFontDialog) 对话框实战
Qt (QFileDialog&QColorDialog&QFontDialog) 对话框实战
Qt (QFileDialog&QColorDialog&QFontDialog) 对话框实战
Qt (QInputDialog 、QMessageBox、QMessageBox)对话框实战
Qt (QInputDialog 、QMessageBox、QMessageBox)对话框实战
|
2月前
Qt6学习笔记五(自定义对话框、QMessageBox、QColorDialog、QFileDialog、QFontDialog)
Qt6学习笔记五(自定义对话框、QMessageBox、QColorDialog、QFileDialog、QFontDialog)
67 0
|
2月前
【qt】一次性学会所有对话框1
【qt】一次性学会所有对话框
28 0
|
8月前
15 QT - 对话框QDialog概述
15 QT - 对话框QDialog概述
27 0
|
2月前
|
存储
QT基础入门——QMainWindow与对话框QDialog(三)
QT基础入门——QMainWindow与对话框QDialog(三)
119 0
QT基础入门——QMainWindow与对话框QDialog(三)