zoukankan      html  css  js  c++  java
  • 对话框

    对话框
    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();
  • 相关阅读:
    rpm的制作 spec文件写法
    RPM 打包技术与典型 SPEC 文件分析
    生成器
    闭包
    内置函数
    函数递归
    高阶函数
    匿名函数
    文件操作
    bytes
  • 原文地址:https://www.cnblogs.com/baoshulin/p/6163960.html
Copyright © 2011-2022 走看看