对话框
Posted 莽莽丛林
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对话框相关的知识,希望对你有一定的参考价值。
对话框
QMessageBox 1 消息对话框
可以获取按钮值
this->close(); 1 没有信号按钮触发, QMessageBox::about(this, QString("关于 计算器"), QString("该计算器用于四则运算")); QMessageBox::aboutQt(this); 2 int ret = QMessageBox::critical(this,QString("critical"), QString("你确定要退出吗?"), QMessageBox::Ok|QMessageBox::No,QMessageBox::Ok ); //按钮 聚焦按钮 3 int ret = QMessageBox::information(this,QString("critical"), QString("你确定要退出吗?"), QMessageBox::Ok|QMessageBox::No,QMessageBox::Ok ); 4 int ret = QMessageBox::question(this,QString("critical"), QString("你确定要退出吗?"), QMessageBox::Ok|QMessageBox::No,QMessageBox::Ok ); 5 int ret = QMessageBox::warning(this,QString("critical"), QString("你确定要退出吗?"), QMessageBox::Ok|QMessageBox::No,QMessageBox::Ok ); if(ret == QMessageBox::Ok) this->close();
QColorDialog 2 用于设置字体颜色
QPalette setColor
setPalette(pa); 设置字体的颜色
setStyleSheet(myStyle); 可以设备背景颜色,关键字 background-color
设置字体颜色也可以通过StyleSheet 设置
QFont font; font.setFamily("Ubuntu"); font.setPointSize(20); font.setBold(true); font.setItalic(true); font.setUnderline(true); ui->label->setFont(font); //改变BTN 颜色 也是通过setStyleSheet //三种 空闲 触碰 按下 //PushButton{color:,:backgroudcolor:}; QString s = QString( "QPushButton{color:rgb(255, 47, 0); background-color:black;} \ QPushButton:hover{color:red; background-color:green;} QPushButton:pressed{color:yellow;background-color:blue}"); ui->testBtn->setStyleSheet(s);
弹框选择字体
QFont font1 = QFontDialog::getFont(&ok,font,this, QString("请选择需要的字体"));
if(!ok) return;
ui->label->setFont(font1);
QPushButton{color:white; background-color:black;} 空闲
QPushButton:hover{color:red; background-color:green;} 触碰
QPushButton:pressed{color:yellow;background-color:blue} 按下
3字体对话框
QFontDialog 字体对话框
getFont setFont
弹框选择颜色 QColor color = QColorDialog::getColor(Qt::white,this,QString("请选择需要的颜色")); QPalette pa; pa.setColor(QPalette::WindowText, color); //设置 标签的字体的颜色 ui->label->setPalette(pa); //color.name 可以获取颜色的值 ui->label_2->setText(color.name()); //样式表 //QString() //ui->label_2->setStyleSheet(""); int r, g, b; color.getRgb(&r, &g, &b); // QString s("background-color: rgb(255, 47, 0);"); QString s =QString("background-color: rgb(%1, %2, %3);").arg(r).arg(g).arg(b); ui->label_3->setStyleSheet(s);
color 字体颜色 background-color 背景颜色
4输入对话框
QInputDialog 输入对话框
getDouble
getInt
getMultiLineText
输入整数 bool ok; int ret = QInputDialog::getInt(this,QString("身高"),QString("请选择对应的身高:CM"), 160, 0,300,5,&ok); if(!ok) { return; } ui->textEdit->setText(QString::number(ret)); 输入浮点数 bool ok; double d = QInputDialog::getDouble(this, QString("体重"), QString("请输入一个体重值:KG"), 77,0.0,500,5, &ok); if(!ok) { return; } ui->textEdit->setText(QString::number(d)); //字符串列表 QStringList list; bool ok; list << "春" << "夏" << "秋" << "冬"; QString s = QInputDialog::getItem(this,QString("四季"),QString("请选择一个季节"), list, 0, true, &ok); ui->textEdit->setText(s); 一行的文本输入 bool ok; QString s = QInputDialog::getText(this,QString("文本"),QString("请输入一行文本"), QLineEdit::Password ,QString("candle"),&ok); if(!ok) { return; } ui->textEdit->setText(s); //多行文本输入 bool ok; QString s = QInputDialog::getMultiLineText(this, QString(""), QString(""), QString("candle"),&ok); if(!ok) return; ui->textEdit->setText(s);
QErrorMessage 错误消息
qtHandler
showMessage
错误 QErrorMessage * errMsg = QErrorMessage::qtHandler(); errMsg->showMessage("This is test error Message");
QProgressDialog 进度条对话框
setModal
setValue
1 myTimer = new QTimer(this); value = 0; pd = new QProgressDialog(QString("文件上传"),QString("取消上传"), 0, 100, this); connect(myTimer, SIGNAL(timeout()), this, SLOT(SlotMyTimer())); connect(pd, SIGNAL(canceled()), this, SLOT(SlotPdCancal())); 2 slot void Widget::SlotMyTimer() { value++; pd->setValue(value); if(value == 100) { myTimer->stop(); value = 0; } } void Widget::SlotPdCancal() { myTimer->stop(); value = 0; }
QFileDialog 文件管理对话框
QTextStream 文件流
文件一读 QFile file(this); //如果用QFile 这个类 要首先设置名称 file.setFileName(QString("main.cpp")); bool ret = file.open(QIODevice::ReadWrite|QIODevice::Text); if(!ret) { return; } //1 一次性读取整个文件到内存中,大文件不建议使用 QByteArray ba = file.readAll(); //2一次性读取一行 //file.readLine() // while(!file.atEnd()) { //一次性读取一行,遇到换行符为止 // QByteArray ba = file.readLine(); // QString s(ba); // qDebug() << s; // } //一次性读取n 个字符 // while(!file.atEnd()) { // //一次性读取n 个字符 // QByteArray ba = file.read(10); // QString s(ba); // qDebug() << s; // } // //
文件写 QFile writeFile; writeFile.setFileName("123.cpp"); ret = writeFile.open(QIODevice::ReadWrite|QIODevice::Text); if(!ret) { return; } writeFile.write(ba); file.close(); writeFile.close();
读文件对话框 //返回值 选中的文件的绝对路径 // QString s = QFileDialog::getOpenFileName(this, QString("请选择文件"), //文件管理器的名称 QString("/dir"), //默认路径 QString("HEADERS(*.h);;SOURCES(*.cpp);;FORMS(*.ui) ")); //过滤器 名称(*.cpp) all(*.*) 多个过滤器;;隔开 多种类型的文件用空格隔开 QFile myfile; myfile.setFileName(s); myfile.open(QIODevice::ReadWrite|QIODevice::Text);
1普通方式
//myfile.readAll(); //QByteArray ba = myfile.readAll(); //ui->textEdit->setText(QString(ba)); //2用文件流的形式打开 QTextStream readStream(&myfile); ui->textEdit->setText(readStream.readAll()); //ui->textEdit->setText(QString(myfile.readAll())); myfile.close();
保存文件 QString s = QFileDialog::getSaveFileName(this,QString("请选择文件"), QString("/dir"), QString("HEADERS(*.h);;SOURCES(*.cpp);;FORMS(*.ui) ")); QFile myfile; myfile.setFileName(s); bool ret = myfile.open(QIODevice::ReadWrite|QIODevice::Text); if(!ret) { return; } QTextStream writeStream(&myfile); writeStream << ui->textEdit->toPlainText(); myfile.close();
以上是关于对话框的主要内容,如果未能解决你的问题,请参考以下文章