QT学习笔记4

简介: QT学习笔记4

一.UI的使用

ui代码输入:

 ui->setupUi(this);
 ui->statusbar->showMessage("作者",3000);

在ui类中调用

二.对话框QDialong

模态对话框:就是会阻塞同一应用程序中其它窗口的输入

非模态对话框:不会堵塞同一应用程序中其它窗口的输入

1)自定义对话框

(1)QDialog::exec()实现应用程序级别的模态对话框


    QDialog qdialog;
    qdialog.setWindowTitle(tr("对话框"));
    qdialog.exec();

(2)QDialog::open()实现窗口级别的模态对话框

    QDialog qdialog;
    qdialog.setWindowTitle(tr("对话框"));
    qdialog.open();

(3)QDialog::show()实现非模态对话框

 

    QDialog *qdialog=new  QDialog ;
    qdialog->setWindowTitle(tr("对话框"));
    qdialog->show();

要在堆上建立,栈上建立会一闪而过。此方法有内存泄漏,由于对话框的特性,我们可以设置对话框关闭,自动销毁对话框。

    QDialog *qdialog=new  QDialog;
    qdialog->setAttribute(Qt::WA_DeleteOnClose);
    qdialog->setWindowTitle(tr("对话框"));
    qdialog->show();

2)标准对话框

2)标准对话框


#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStatusBar>
#include <QDialog>
#include <QFileDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->statusbar->showMessage("作者",3000);
    QToolBar *qtboolbar=new QToolBar(this);
        //穿件工具栏
    this->addToolBar(qtboolbar);
    QAction *tool1=new QAction("运行");
    QAction *tool2=new QAction("调试");
    QAction *tool3=new QAction("编译");
    qtboolbar->addAction(tool1);
    qtboolbar->addAction(tool2);
    qtboolbar->addAction(tool3);
//    QDialog *qdialog=new  QDialog;
//    qdialog->setAttribute(Qt::WA_DeleteOnClose);
//    qdialog->setWindowTitle(tr("对话框"));
//    qdialog->show();
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"./",tr("Images (*.png *.xpm *.jpg)","Text(*.txt)"));
    if(!fileName.isEmpty()){
        ui->plainTextEdit->appendPlainText(fileName);
    }
}
void MainWindow::on_pushButton_2_clicked()
{
    QStringList files = QFileDialog::getOpenFileNames(
                             this,
                             "打开文件",
                             "./",
                             "Images (*.png *.xpm *.jpg)");
    for(int i=0;i<files.count();i++){
         ui->plainTextEdit->appendPlainText(files[i]);
    }
}

(2)颜色对话框QColorDialog:

QColorDialog::getColor()

//生成颜色对话框

第一个参数是现有颜色,第二个this指针,第三个对话框名字,返回值是选择的颜色

void MainWindow::on_pushButton_3_clicked()
{
    QPalette pal=ui->plainTextEdit->palette();
    //获取现有调色板数据
    QColor iniColort=pal.color(QPalette::Text);
    //现有的文字颜色
    QColor color1=QColorDialog::getColor(iniColort,this,"选择颜色");
    //选择颜色
    if(color1.isValid()){
        //判断是和否存在
        pal.setColor(QPalette::Text,color1);
        //将调色板子的文字数据改变为返回的颜色
        ui->plainTextEdit->setPalette(pal);
        //设置调色板
    }
}

点击按钮,生成颜色对话框,然后选择颜色,如果有效,设置文字颜色;

(3)字体对话框QFontDialog:

QFontDialo::getFont:生成选择字体对话框

void MainWindow::on_pushButton_4_clicked()
{
     bool ok;
     QFont inift=ui->plainTextEdit->font();
     //获得原有文本框字体
     QFont font = QFontDialog::getFont(&ok,inift,this);
     //返回一个字体类
     if (ok) {
         ui->plainTextEdit->setFont(font);
         //把该字体设置为返回的字体
     } else {
     }
}
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QStatusBar>
#include <QDialog>
#include <QFileDialog>
#include <QColorDialog>
#include <QFontDialog>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    ui->statusbar->showMessage("作者",3000);
    QToolBar *qtboolbar=new QToolBar(this);
        //穿件工具栏
    this->addToolBar(qtboolbar);
    QAction *tool1=new QAction("运行");
    QAction *tool2=new QAction("调试");
    QAction *tool3=new QAction("编译");
    qtboolbar->addAction(tool1);
    qtboolbar->addAction(tool2);
    qtboolbar->addAction(tool3);
//    QDialog *qdialog=new  QDialog;
//    qdialog->setAttribute(Qt::WA_DeleteOnClose);
//    qdialog->setWindowTitle(tr("对话框"));
//    qdialog->show();
}
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::on_pushButton_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this, tr("打开文件"),"./",tr("Images (*.png *.xpm *.jpg)","Text(*.txt)"));
    if(!fileName.isEmpty()){
        ui->plainTextEdit->appendPlainText(fileName);
    }
}
void MainWindow::on_pushButton_2_clicked()
{
    QStringList files = QFileDialog::getOpenFileNames(
                             this,
                             "打开文件",
                             "./",
                             "Images (*.png *.xpm *.jpg)");
    for(int i=0;i<files.count();i++){
         ui->plainTextEdit->appendPlainText(files[i]);
    }
}
void MainWindow::on_pushButton_3_clicked()
{
    QPalette pal=ui->plainTextEdit->palette();
    //获取现有调色板数据
    QColor iniColort=pal.color(QPalette::Text);
    //现有的文字颜色
    QColor color1=QColorDialog::getColor(iniColort,this,"选择颜色");
    //选择颜色
    if(color1.isValid()){
        //判断是和否存在
        pal.setColor(QPalette::Text,color1);
        //将调色板子的文字数据改变为返回的颜色
        ui->plainTextEdit->setPalette(pal);
        //设置调色板
    }
}
void MainWindow::on_pushButton_4_clicked()
{
     bool ok;
     QFont inift=ui->plainTextEdit->font();
     //获得原有文本框字体
     QFont font = QFontDialog::getFont(&ok,inift,this);
     //返回一个字体类
     if (ok) {
         ui->plainTextEdit->setFont(font);
     } else {
     }
}

添加文件对话框:

选择颜色对话框:

选择字体对话框:

改变完后对话框:

相关文章
|
11月前
QT学习笔记5
QT学习笔记5
|
11月前
|
容器
QT学习笔记6
QT学习笔记6
|
11月前
|
11月前
|
C++
|
11月前
|
11月前
|
11月前
QT学习笔记3
QT学习笔记3
|
12月前
|
API 数据处理
QT 学习笔记(十)
QT 学习笔记(十)

推荐镜像

更多