QT学习笔记(二)

模态和非模态对话框
标准对话框和文件对话框

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QMenuBar>   //菜单栏
#include<QMenu>       //添加菜单
#include<QAction>
#include<QDialog>
#include<QDebug>
#include<QMessageBox>
#include<QFileDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QMenuBar *mBar=menuBar();
    setMenuBar(mBar);
    QMenu *menu=mBar->addMenu("对话框");

    /***********
     * 模态对话框
     ***********/
    QAction *p1=menu->addAction("模态对话框");
    connect(p1,&QAction::triggered,
            [=]()
    {
       QDialog dlg;
       dlg.exec();
       qDebug("11");
    }

            );

    /***********
     * 非模态对话框
     * 在.h里面加#include<QDialog>
     *  QDialog dlg;
     ***********/
    QAction *p2=menu->addAction("非模态对话框");
    connect(p2,&QAction::triggered,
            [=]()
    {

       dlg.show();
       qDebug("11");
    }

            );


    /***********
     * 关于对话框
     ***********/
 QAction *p3=menu->addAction("关于对话框");
    connect(p3,&QAction::triggered,
            [=]()
    {
       QMessageBox::about(this,"about","关于Qt");
    }

            );

    /***********
     * 问题对话框
     ***********/

QAction *p4=menu->addAction("问题对话框");
   connect(p4,&QAction::triggered,
           [=]()
   {

     int ret = QMessageBox::question(this,
                                     "question","Are you ok",
                                     QMessageBox::Ok |
                                     QMessageBox::Cancel
                                     );


      switch (ret) {
      case QMessageBox::Yes:
          qDebug()<<"I am ok";
          break;
      case QMessageBox::No:
          qDebug()<<"I am bad";
          break;
      default:
          break;
      }

   }

           );

/****************
*文件对话框
*#include<QFileDialog>
*****************/
   QAction *p5=menu->addAction("文件对话框");
      connect(p5,&QAction::triggered,
       [=]()
      {
    QString path= QFileDialog::getOpenFileName(
                   this,
                 "open",
                 "../",
                "souce(*.cpp *.h);;Text(*.txt);;all(*.*)"


                 );
             qDebug()<<path;
      }

              );


}
MainWindow::~MainWindow()
{
    delete ui;
}


c常用控件

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include<QDebug>
#include<QCompleter>
#include<QStringList>
#include<QMovie>
#include <QLCDNumber>//数码管
#include <QProgressBar>//进度条
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    ui->button->setText("123");
    QString str=ui->lineEdit->text();//获取内容
    qDebug()<<str;
    //设置内容
    ui->lineEdit->setText("hahaha");
    //设置内容显示间隙
    ui->lineEdit->setTextMargins(15,0,0,0);
    //设置内容显示方式
   // ui->lineEdit->setEchoMode(QLineEdit::Password);
    //提示内容
    QStringList list;
    list<<"hello"<<"How are you"<<"hehe";

    QCompleter *com=new QCompleter(list,this);
    com->setCaseSensitivity(Qt::CaseInsensitive);
    ui->lineEdit->setCompleter(com);


    //QLabel标签作用
    ui->labelText->setText("^_^");
    //设置图片
     ui->labelImage->setPixmap(QPixmap(":/1.jpg"));
    //让图片自动设置大小
     ui->labelImage->setScaledContents(true);

     //创建动画
     QMovie *myMovie =new QMovie(":/2.gif");
    //设置动画
      ui->labelGif->setMovie(myMovie);
     //启动动画
      myMovie->start();
      ui->labelGif->setScaledContents(true);

      //设置网址
      ui->labelUrl->setText("<h1><a href=\"https://www.baidu.com\">百度一下</a></h1>");
       ui->labelUrl->setOpenExternalLinks(true);

       //数码管
       ui->lcdNumber->display(123);

       //进度条
       ui->progressBar->setMinimum(0);//最小
       ui->progressBar->setMaximum(200);//最大
       ui->progressBar->setValue(100);//当前

}

MainWindow::~MainWindow()
{
    delete ui;
}


void MainWindow::on_change_clicked()
{
    static int i=0;
  //  i=++i%4;
    ui->stackedWidget->setCurrentIndex(++i%4);

}


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值