首页 > 代码库 > 对话框

对话框

对话框
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 slotvoid Widget::SlotMyTimer(){    value++;    pd->setValue(value);    if(value =http://www.mamicode.com/= 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();

 

对话框