qt内置对话框学习

来源:互联网 发布:安卓是linux系统吗 编辑:程序博客网 时间:2024/05/12 04:37

1、页面布局:

       QGridLayout*gridLayout = new QGridLayout       //创建布局

       gridLayout->addWidget(控件,行号,列号,行跨度,列跨度)

       setLayout(gridLayout)    //布局生效

-----------------------------------------------------------------------------------------------------------------

2、颜色对话框:

       QPalettepalette = textedit->palette()  //从文本编辑器取出调色板对象

       窗口类都有一些共同的属性对象,比如调色板、字体等等

      

const QColor& color =QColorDialog::getColor(palette.color(QPalette::Base), this)  //调出颜色选择对话框,从中选择一种颜色,这种颜色是由该窗口的基本调色板中获得的,我猜不同调色板的特性不一样,所以有this参数,获得的颜色的方式是基本方式,这我不太确定。这里只是选取颜色,选取的范围是在该窗口特有调色板上选取的,设置在下一步

 

palette.setColor(QPalette::Base,color)     //设置调色板,设置方式,颜色

textEdit->setPalette(palette) //在空间上绘制颜色

 

给控件绘制颜色的流程路线:

       (1)取出控件的调色板属性对象

       (2)打开颜色选取对话框,选取一种颜色

       (3)设置调色板颜色

        (4)在空间上绘制颜色

 

效果图:


-----------------------------------------------------------------------------------------------------------------

3、字体对话框:

const QFont& font =QFontDialog::getFont(&bool,textEdit()->font(),this,标题)            //第二个参数是QFontfont = textEdit->font(),获取文本编辑对象的字体属性对象,这里跟颜色设置十分相似

 

textEdit()->setFont(font) //设置字体

 

窗体设置字体的流程:

       (1)获得窗体对象的字体属性对象

       (2)打开字体选择对话框,选择一种字体

       (3)设置字体

 

效果图:

-----------------------------------------------------------------------------------------------------------------

4、进度条对话框:

QProgressDialog progress(标签字符串,按钮标题,开始数,完成数,this)

//(“正在复制文件…”, “取消”, 0, 1000, this)    从0开始,1000结束,表示进度

 

QFontfont("ZYSong18030",10)    //进程窗口的字体设置,其他窗口一样

progress.setFont(font)   

 

progress.setValue(i)  //这里的i是一个循环数,用来表示进程执行到哪里了

progress.wasCanceled()  //进程没有完成就按下取消按钮将返回bool类型

效果图:

-----------------------------------------------------------------------------------------------------------------

5、输入对话框:

输入对话框QInputDialog有各种不同的方法来输入不同的类型,本质上是选择一个一个的项目,但是可以通过设置参数来手动修改

 

       字符串输入:

QString name = QInputDialog::getText(this,标题,提示标签,模式,默认初始字符串,&bool)   //&bool应该是表示是否输入成功的一个参数

       效果图:

       整数输入:

int age = QInputDialog::getInteger(this,标题,提示标签,初始值,开始值,末尾值,步长,&bool)        

效果图:

       浮点型输入:

double high =QInputDialog::getDouble(this,标题,提示标签,初始值,开始值,末尾值,步长,&bool)

       效果图:

 

       项目选择:

QString sex = QInputDialog::getItem(this,标题,标签提示,字符串列表,初始项目索引,是否可以手动修改,&bool)

       效果图:

          

-----------------------------------------------------------------------------------------------------------------

 

6、向导对话框:

       QWizardwizard //创建了一个向导对象

       wizard.addPage(&QWizardPage);//添加一页

 

       QWizardPage*page = new QWizardPage  //创建页对象

       page->setTitle(Title)        //设置标题

 

       QLable*label = new QLabel(“第一页”)

       label->setWordWarp(bool)    //设置标签自动换行

      

       QVBoxLayout*layout = newQVBoxLayout     //创建布局

       layout->addWidget(label)

       page->setLayout(layout) //给页面设置布局

 

       效果图:

             

-----------------------------------------------------------------------------------------------------------------

 

7、页设置对话框:

QPrinterprinter

QPageSetupDialogdlg(&printer, this)              //页设置窗口

dlg.exet()== QDialog::Accepted          //是否正常退出

        具体用法以后再了解

       效果图:

-----------------------------------------------------------------------------------------------------------------

8、文件对话框:

       打开一个文件:

              QFileDialog*filedialog = new QFileDialog(this)

              filedialog->setTialog(标题)

              filedialog->setDirectory(路径)     //打开对话框时默认的文件路径

              filedialog->setFilter(“文件(*.cpp *.c)”)     //文件类型过滤

              //文件过滤一般都这种形式,用空格隔开,*代表通配符

 

              QStringpath = filedialog->selecteFiles()[0]      //获取文件路径

              //该函数返回文件绝对路径的列表,意思是可以选择多个文件了

       效果图:

       打开多个文件:

QStringList files = QFileDialog::getOpenFileNames(this,标题,默认路径,过滤器)           //这里过滤器学习一种新的用法

“文件1(*.cpp);;文件2(*.h *.pro)”     //用;;隔开个过滤器

效果:

效果图:

 

       选择文件夹对话框:

QFileDialog::Optionsoptions=QFiledialog::DontResolveSymlinks|QFileDialog::ShowDirOnly|QFileDialog::DontUseNativeDialog

 

QString directory = QFileDialog::getExistingDirectory(this,标题,初始路径,options)            //该方法就是获取被选文件的路径

//整体来看就是创建了一次选择,要求是在文件对话框中只能出现当前路径的文件夹,并且文件对话框的样式不能使用系统自带的,DontResolveSymlinks参数的意思还是不太理解

       效果图:

-----------------------------------------------------------------------------------------------------------------

9、信息提示错误类对话框:

       提示对话框:

              QMessageBox::information(this,标题,提示内容)

              效果图:

       错误对话框:

              QMessageBox::critical(this,标题,提示内容)

              效果图:

       警告对话框:

              switch(QMessageBox::warning(this,标题,警告内容,按钮1|按钮2))

              {

                     case按钮1发出的信号:statement1;break;

                     case按钮2发出的信号:statement2;break;

}

//这里的按钮在QMessageBox中去找,QMessageBox::Save

              效果图:

       自定义对话框:

              QMessageBoxcustomMsgBox

              customMsgBox.setWindowTitle(标题)

              QPushButton*button1 = customMsgBox.addButton(标题,按钮类型)

              QPushButton*button2 = customMsgBox.addButton(标题,按钮类型)

              QPushButton*button3 = customMsgBox.addButton(标题,按钮类型)

              // 按钮类型在QMessageBox中找

              customMsgBox.setText(tr("自定义对话框"));

              效果图:

       错误信息框:

              QErrorMessageerrorBox(this)

              errorBox.setWindowTitle(标题)

              errorBox。showMessage(提示内容1)

              errorBox。showMessage(提示内容2)

              errorBox。showMessage(提示内容3)

              …………………

              errorBox.exec()  //退出

效果图:


-----------------------------------------------------------------------------------------------------------------

 

10、关于对话框:

       QMessageBox::aboutQt(this,标题)

       效果图:

 

       QMessageBox::about(this,标题)

       效果图:

-----------------------------------------------------------------------------------------------------------------

11、下拉列表:

       QComboBox*colorComboBox = new QComboBox  //创建下拉列表

       QStringListcolorlist = QColor::colorNames()   //返回Qt知道的颜色到列表

        QStringcolor

        foreach(color,colorlist)  //遍历列表元素

       {

              QPixmappix(QSize(70, 20))    //创建一个特定大小的位图

           pix.fill(QColor(color))      //位图填充颜色

           colorComboBox->setItem(QIcon(pix))       //给下拉列表的项目填充内容

          colorComboBox->setIconSize(QSize(70,20))    //下拉列表框大小

          colorComboBox->setSizeAdjustPolicy(QComboBox:: AdjustToContents)

              // 自动适应大小并调整

}

-----------------------------------------------------------------------------------------------------------------

12、中文报错解决方案:

       QTextCodec*codec = QTextCodec::codecForName(“GBK”)

       QTextCodec::setCodecForTr(codec)

       QTextCodec::setCodecForLocale(codec)

      QTextCodec::setCodecForCStrings(codec)

       具体编码方式暂不深究

-----------------------------------------------------------------------------------------------------------------

13、QTest的初次使用:

-----------------------------------------------------------------------------------------------------------------

14、初次使用多按钮对应一个槽函数:

-----------------------------------------------------------------------------------------------------------------

注:第13、14点内容有点多,单独总结!


注:源码和效果图查看链接:

http://download.csdn.net/detail/m0_37231530/9869627


原创粉丝点击