版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流Qt Creator 学习记录.精品文档.Qt Creator 的学习记录1.(1) 设置Qt显示中文 QTextCodec:setCodecForTr(QTextCodec:CodeForname("UTF-8");-QT4 注:QT5识别UTF-8,所以不需要这条代码。(2) QT结构Qt图形库是一个组织严谨的C+类库3.窗口部件3.1 Widget(1) Qt Creator提供的默认基类只有:QMainWindow、QWideget、QDialog。 QMainWindow提供带菜单栏和工具栏的主窗口类。 QDia
2、log是各种对话框的基类,而他们全继承自QWidget。不仅如此,所有的窗口部件都继承自QWidget。(2) 建立一个新窗口QWidget*wdiget=new QWidget;/新建Qwidget类对象,默认parent参数是0,所以它是个窗口 QLabel*label= new QLabel;/新建QLabel对象,默认perent参数是0,所以它是个窗口(3) 设置窗口标题widget->setWindowTitle(QObject:tr("我是widget");/设置窗口标题(4) new操作符为label12分配空间,但是并没有用delete进行释放。这是
3、因为Qt中销毁父对象的时候会自动销毁子对象。(5) 显示窗口信息label->setText(QObject:tr(“我是个label窗口”);(6) 设置窗口大小 label->resize(150,20); /150为X坐标,20为Y坐标。(7) 设置窗口位置label->move(200,100); /200为X坐标,100为Y坐标(8)更改新建窗口的类型QWidget*widget=new QWidget(0,Qt:Dialog|Qt:FramelessWindowHint);QLabel*label= new QLabel(0,Qt:SplashScreen|Qt:
4、WindowStaysOnTopHint);Qt:Dialog:对话框类型Qt:SplashScreen:欢迎框类型Qt:FramelessWindowHint:一个没有边框的窗口Qt:WindowStaysOnTopHint:使该窗口停留在所有其他窗口上面(9)QDebug()函数QDebug()函数可以将调试信息直接输出到控制台,Qt Creator中是输出到应用程序输出栏。qDebug()<<"geometry:"<<geometry<<endl<<"frame"<<frame; / 输出
5、内容 输出变量 换行 输出内容 输出变量(10) .和->的区别如果定义如下:A *p则使用:p->play(); 左边是结构指针。A p 则使用:p.paly(); 左边是结构变量。总结:箭头(->):左边必须为指针;点号(.):左边必须为实体3.2 Dialog(1) 对话框分为:模态的(modal)和非模态的(modeless)模态对话框:就是在没关闭它之前,不能与同一应用程序的其他窗口进行交互。 要使一个对话框成为模态对话框,只需调用它的exec()函数即可。非模态对话框:既可以与它交互,也可以与同一应用程序的其他窗口进行交互。要建立一个非模态对话框,先用new操作建
6、立,然后用show()函数显示。(2) 新建一个QDialog类,this参数QDialog*dialog=new QDialog(this); /定义了一个指向QDialog类对象的指针变量,new运算符开辟一个新的内存空间/dialog->setModal(true); /添加此程序可以变为模态对话框。dialog->show(); /建立非模态对话框 另一种: QDialog dialog(this);dialog.exec; /建立模态对话框 (3) setWindowModality():它有一个参数来设置模态对话框要阻塞的窗口类型。可以是:Qt:NonModal(不阻塞
7、任何窗口,就是非模态) Qt:WindowModal(阻塞它的父窗口和所有祖先窗口以及它的子窗口) Qt:ApplicationModal(阻塞整个应用程序的所有窗口)而setModal()函数默认的设置的是Qt:ApplicationModal.(4) 信号和槽头文件中public slots: /自定义一个槽,且可以被类外调用void showChildDialog();信号槽快速声明方法:手动关联单击showChildDialog()槽,同时按下Alt+Enter键,选择“在mywidget.cpp中添加定义”,再按Enter。编辑器就会转到mywidget.cpp文件中,并已创建sho
8、wChildDialog()信号槽的自动关联: connect(ui->showChildButton,SIGNAL(clicked(),this,SLOT(showChildDialog(); /connect()是QObject类中的函数, SIGNAL()、SLOTS()是宏(5) 颜色对话框 QColorDialogQColor color= QColorDialog:getColor(Qt:red,this,tr("颜色对话框"); getColor()函数为QColorDialoog的静态函数,它的3个参数依次是(设置初始颜色、父窗口、对话框标题)/ 输出
9、颜色信息qDebug()<<"color:"<<color;qDebug的输出信息:ARGB的4个数分别代表透明度(alpha)1.0代表完全透明,0.0代表完全透明红色(red)、绿色(green)、蓝色(blue)。(6)文件对话框QFileDialogQStringList fileNames = QFileDialog:getOpenFileNames(this,tr("文件对话框"),"F:",tr("图片文件(*png *jpg)"); /*png *jpg有一空格。 getOp
10、enFileName()来获取文件名,以模态方式运行对话框。4个参数的作用分别是:指定父窗口、设置对话框标题、指定默认打开的目录路径、设置文件类型过滤器。如果不设置过滤器,默认是选择所有类型的文件。可以用“;”来设置不同类型的过滤器。tr("图片文件(*png *jpg);文本文件(*txt)") qDebug()<< "fileNames:" << fileNames;qDebug的输出信息: 此外,QFileDialog类还提供getSaveFileName()函数来实现保持文件对话框和文件为对话框。 getExistingD
11、irectroy()函数来获取一个已存在得文件夹路径。用法与getOpenFileName()函数一致。(7) 字体对话框QFontDialog bool ok; / 标记是否按下了“OK”按钮 QFont font = QFontDialog:getFont(&ok,this); GetFont()静态函数来获取选择的字体。第一个参数是:bool类型变量,用于存放按下的按钮状态if(ok) ui->pushButton_3->setFont(font);/ 如果按下“OK”按钮,那么让“字体对话框”按钮使用新字体(8) 输入对话框QInputDialog QString
12、string = QInputDialog:getText(this,tr("输入字符串对话框"), tr("请输入用户名:"),QLineEdit:Normal,tr("admin"),&ok);if(ok) qDebug() << "string:"<<string;getText()提供一个可输入字符串的对话框,参数的作用分别是:指定父窗口、设置窗口标题、设置对话框中的标签显示的文本、设置输入的字符串的显示模式(显示用户输入的实际信息)、设置输入框中的默认字符串、设置获取按下按
13、钮信息的bool变量。int value1 = QInputDialog:getInt(this,tr("输入整数对话框"), tr("请输入-1000到1000之间的数值"),100,-1000,1000,10,&ok); if(ok) qDebug() << "value1:"<<value1;getInt()提供一个输入整型数值的对话框,参数依次是(父窗口,设置窗口标题,设置对话框中标签显示的文本,默认显示的数值,可输入的最小值,可输入的最大值,使用箭头按钮每次增加10,设置获取按下按钮信息的bo
14、ol变量) / 获取浮点数 double value2 = QInputDialog:getDouble(this,tr("输入浮点数对话框"),tr("请输入-1000到1000之间的数值"),0.00,-1000,1000,2,&ok); if(ok) qDebug() << "value2:"<<value2;getDouble()提供输入浮点型数值的对话框,参数依次是(父窗口,设置窗口标题,设置对话框中标签显示的文本,默认显示的数值,可输入的最小值,可输入的最大值,小数的位数,设置获取按下按钮信
15、息的bool变量)。/ 获取条目QStringList items; /定义QStringList类型的Items items << tr("条目1") << tr("条目2"); /创建2个条目 QString item = QInputDialog:getItem(this,tr("输入条目对话框"), tr("请选择一个条目"),items,0,true,&ok); if(ok) qDebug() << "item:"<<item;g
16、etItem()提供一个可输入条目的对话框,使用前要先创建几个条目。参数依次是(父窗口,设置窗口标题,设置对话框中标签显示的文本,默认显示列表的第0个参数(0就是第一个),设置获取按下按钮信息的bool变量)(9) 消息对话框QMessage/ 问题对话框 int ret1 = QMessageBox:question(this,tr("问题对话框"), tr("你了Qt"),QMessageBox:Yes,QMessageBox:No); if(ret1 = QMessageBox:Yes) qDebug()<<tr("问题!&q
17、uot;); / 提示对话框 int ret2 = QMessageBox:information(this,tr("提示对话框"), tr("这是Qt书籍!"),QMessageBox:Ok); if(ret2 = QMessageBox:Ok) qDebug()<<tr("提示!"); / 警告对话框 int ret3 = QMessageBox:warning(this,tr("警告对话框"), tr("不能提前结束!"),QMessageBox:Abort); if(ret3
18、 = QMessageBox:Abort) qDebug()<<tr("警告!"); / 错误对话框 int ret4 = QMessageBox:critical(this,tr("严重错误对话框"), tr("发现一个严重错误!现在要关闭所有文件!"),QMessageBox:YesAll); if(ret4 = QMessageBox:YesAll) qDebug() <<tr("错误"); / 关于对话框 QMessageBox:about(this,tr("关于对话框&q
19、uot;), tr("致力于Qt及Qt Creator的普及工作!");QMseeageBox创建了4种不同类型的消息对话框,参数分别是:(父窗口,标题栏,显示信息,和拥有的按钮)。这几个静态函数的返回值就是那些标准的按钮,它是枚举类型,根据返回值来判断用户按下那个按钮。 about()函数没有返回值,因为它默认只有一个按钮,与其相似的有aboutQt()函数,用来显示Qt版本的相关信息。(10)进度对话框QProgressDialogQProgressDialog dialog(tr("文件复制进度"),tr("取消"),0,500
20、00,this); / 设置窗口标题 dialog.setWindowTitle(tr("进度对话框"); / 将对话框设置为模态 dialog.setWindowModality(Qt:WindowModal); dialog.show(); / 演示复制进度 for(int i=0;i<50000;i+) / 设置进度条的当前值 dialog.setValue(i); / 避免界面冻结 QCoreApplication:processEvents(); / 按下取消按钮则中断 if(dialog.wasCanceled() break; / 这样才能显示100%,
21、因为for循环中少加了一个数 dialog.setValue(50000);qDebug() << tr("复制结束!");创建了一个QProgressDialog类对象dialog,参数分别为(对话框的标签内容,取消按钮的显示文本,最小值,最大值,父窗口),用setValue()函数使进度条向前推进;用QCoreApplication类的静态函数processEvents()函数防止长时间操作,用户界面冻结。用QprogressDialog的wasCanceled()函数来判断用户是否单击了“取消”按钮。(11) 错误对话框QErrorMessageQErro
22、rMessage *dialog = new QErrorMessage(this); dialog->setWindowTitle(tr("错误信息对话框"); dialog->showMessage(tr("这里是出错信息!");新建已QErrorMessage对话框,并用showMessage()函数显示错误信息,调用showMessage()函数时,对话框会以非模态的形式显示出来。(12) 向导对话框-QWizard类首先要在头文件MyWidget.h中添加private类型函数声明,private: Ui:MyWidget *ui;
23、 QWizardPage *createPage1(); /声明3个返回值为QWizardPage类对象的指针的函数。 QWizardPage *createPage2(); / QWizardPage *createPage3(); /然后在MyWidget.cpp文件中对函数进行定义:/ 向导页面1QWizardPage * MyWidget:createPage1() QWizardPage *page = new QWizardPage; page->setTitle(tr("介绍"); return page;/ 向导页面2QWizardPage * MyW
24、idget:createPage2() QWizardPage *page = new QWizardPage; page->setTitle(tr("用户选择信息"); return page;/ 向导页面3QWizardPage * MyWidget:createPage3() QWizardPage *page = new QWizardPage; page->setTitle(tr("结束"); return page;/ 向导对话框void MyWidget:on_pushButton_8_clicked() QWizard wiz
25、ard(this); /新建QWizard类对象 wizard.setWindowTitle(tr("向导对话框"); / 添加向导页面 wizard.addPage(createPage1();/使用addPage()函数添加3个页面 wizard.addPage(createPage2(); wizard.addPage(createPage3(); wizard.exec();3.3 QFrame类族QFrame类是带有边框的部件的基类,子类有最常见的标签部件QLabel,还有QLDNumber、QSplitter、QStackedWidget、QToolBox和QA
26、bstracScrollArea类。(1)QLabel标签部件Label部件可以用来显示文本或者图片ui->label->setPixmap(QPixmap("E:/Qt Creator rdm/03/3-8/logo.png");/显示图片QMovie *movie = new QMovie("E:/Qt Creator rdm/03/3-8/donghua.gif");/ 在标签中添加动画 ui->label->setMovie(movie);movie->start(); / 开始播放(2) QPushButton按钮
27、部件QAbstractButton类是按钮部件的抽象基类,子类包括:复选框QCheckBox,标准按钮QPushButton单选按钮QRadiaoButton工具按钮QToolButton改变按钮的显示文本,在第一个字母前加“&”符号,那么就可以将这个按钮的加速键设置为Alt加上这个字母。要显示&本身,可使用“&&”。 ui->pushBtn_1->setText("&nihao"); ui->pushBtn_2->setText("帮助(&H)");ui->pushBtn_3
28、->setText("z&oom");(3) setIcon()函数给按钮添加图标,图片文件夹与工程同一级别,ui->pushBtn_2->setIcon(QIcon("./image/help.png");(4) 行编辑器QLineEditQLineEdit是一个单行文本编辑器,允许用户输入和编辑单行的纯文本文内容,而且提供一些列功能,包括撤销、恢复、剪切(5) 自动补齐功能QCompleter类实现 / 新建自动完成器 QCompleter *completer = new QCompleter(wordList, this
29、); / 设置大小写不敏感 completer->setCaseSensitivity(Qt:CaseInsensitive);ui->lineEdit4->setCompleter(completer);/ 对LineEdit4进行自动补齐。(6) 数值设定框QAbstractSpinBox类是一个抽象类,提供一个数值设定框和一个行编辑器来显示设定值。包含3个子类:QDataTimeEdit日期时间QSpinBox 整数QDoubleSpinBox浮点数(7) QdataTimeEdit编辑日期和时间 ui->dateTimeEdit->setDateTime(
30、QDateTime:currentDateTime(); /设置时间的显示格式ui->dateTimeEdit->setDisplayFormat(tr("yyyy年MM月dd日ddd HH时mm分ss秒"); /ddd表示星期 HH表示小时,使用24小时制,如果最后有AM或这PM,则表示12小时制,如:ssA。4. 信号与槽(1)signs&slots一个信号 对应 一个槽、也可以关联多个槽 ;多个信号 关联 一个槽;一个信号 关联 一个信号;一个信号关联多个槽时,信号发射时,多个槽一个一个随机执行,无法指定执行顺序。(1) 声明一个自定义信号在头文件中signals:void dlgReturn(int); /自定义的信号声明一个信号类要使用signal关键字,在signal前面不能使用public,private,protect等限定符,因为只有定义该信号的类及其子类,才能发射信号,而且信号只用申明,不需要也不能对它进行定义实现。还要注意,信号没有返回值,只能时void类型。因为只有QObject类及其子类才能使用信号和槽机制。MyDialog类继承自QDialog类,而QDialog类继承自QWidget类,QWidget类是QObject类的子类,所以这里可以使用信号和槽。不过使用信号和槽必须在类声明的最开始处添加Q_OBJE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 书馆职工考勤制度
- 河北省保定市安国市2025-2026学年八年级上学期期末地理试题(无答案)
- 福建省漳州市龙文区2025-2026学年第一学期期末素养评价八年级数学试题(无答案)
- 少年宫教师考勤制度
- 山东公务员考勤制度
- 工作及考勤制度
- 工司考勤制度
- 工程单位考勤制度
- 市场销售考勤制度
- 年级主任考勤制度
- 国企投融资培训课件模板
- 医院后勤服务PDCA质量提升路径
- 疼痛护理中的康复与物理治疗
- 意大利雇佣白皮书-万领均
- 中标广西哲社课题申报书
- 2026年郑州铁路职业技术学院单招职业适应性考试题库附答案解析
- 掩体构筑与伪装课件
- 2025年长沙卫生职业学院单招职业适应性测试题库附答案
- 2026年安全员-B证考试题及答案(1000题)
- 2026中央机关遴选和选调公务员(公共基础知识)综合能力测试题带答案解析
- 医疗机构纠纷预防培训的分层培训方案
评论
0/150
提交评论