Qt 学习笔记

Qt 学习笔记


http://www.tuicool.com/articles/ZFBZfm        QTreeView的使用
http://mobile.51cto.com/symbian-268700.htm    树形目录,浏览本地目录
http://blog.youkuaiyun.com/smb1987cs/article/details/8175400  Qt 字符串QString arg()用法总结


Layout->setAlignment(Qt::AlignTop);  布局顶部对齐


Qt Creator 使用:
Ctrl + 鼠标滚动     改变代码字体大小
水平布局
Ctrl + 鼠标依次选定部件(也可点击对象查看器里面的对象名称),再次Ctrl + H    
垂直布局
。。。。。。。。。。。,,,..。Ctrl + L 
选择主窗口mianwindows,可对整个窗口布局


   
右键部件--> Change rich text          改变字体属性
alt + shift + r                        预览


F4      信号与槽编辑模式,鼠标点击左键选中建立连接,单向/双向
F3      部件编辑模式




--------------
groupBox->setCheckable(true);    //支持开关
groupBox->setChecked(false);     //未被选中 
groupBox->setFlat(true);         //取消突出效果
tristateBox->setTristate(true);  //设置复选框为模糊、不确定状态


部件
QWidget 窗口类:     是所有用户界面对象的基类。通俗的来讲,Qt基本上所有的UI类都是由QWidget继承出来的,而QWidget继承于QObject.
QDialog        对话框
QTabWidget     选项卡
QLabel         标签(说明,图标)
QTextEdit      多行编辑器
QLineEdit      单行编辑器
QPushButton    按钮
QGroupBox      主框(类)
<a href="http://www.huiwen.com">汇文教育</a>  html标签
QTableWidget   表格
选择按钮
QCheckBox      复选框
QRadioButton   单选按钮   ------>继承于抽象类 QAbstractButton
QPushButton  


布局


addStretch();  分隔符
QHBoxLayout    水平布局horizontal
QVBoxLayout    垂直布局vertical
QCridLayout    二维网格布局
  调用形式: QGridLayout  *layout = new QGridLayout;
               layout->addWidget(widget,row,column,rowSpan,columnSpan);
               //若省略rowSpan,columnSpan时,该参数默认取1


视图
Item View     Item Widget    Widget继承于View


容器Container     用来容纳或放置其他的部件
Group Box
Scroll Area       带滚动条的窗口       
Tool Box          按钮可以展开,类似于qq好友分组列表
Tab Widget        带选项卡的窗口,每个选项卡里面可以添加自己的部件
Stacket Widget    带翻页,可以选择上一页或下一页
Frame
Widget            
MdiArea           显示多个窗口,类似于ps同时显示多张图片
Dock Widget       可以停靠的窗口,类似于编辑器的工作区  
Splitter
    splitterRight->setOpaqueResize(false);  //false 不实时更新,true 实时更新


Input Widget输入部件
Combo Box           下拉列表框,可以选择自己添加的某项内容
Font Combo Box      包含所有字体,在下拉列表框中选择
Line Edit , Text Edit
Plain Text Edit     纯文本,不能改变字体颜色  
Spin Box            数字选项
Double Spin Box     浮点数选项
Time Edit           时间
Date Edit           日期
Dial                旋转选项
Horizont...roll Bar 横向滑条
Vertical Scroll Bar 竖向滑条
Horizontal Slider   
Vertical Slider
Key sequence Edit




部件命名
infoLabel     可见标签
submitButton  确定按钮
cancelButton  取消按钮
browserButton 浏览按钮 
cmdLineEdit   命令行编辑器






代码
固定窗口大小:在构造函数中加入两行代码
Widget::Widget(QWidget* parent):
QWidget(parent),
ui(new Ui::Widget)
{
    ui->setupUi(this);
    //添加以下两行
    this->setMaximumSize(393,171); //最大窗口
    this->setMinimumSize(393,171); //最小窗口
}


信号与槽
1.valueChanged(int)   ----->  setValue(int)   一个值改变,另一个同步改变
2.手动为按钮添加槽函数:
  a.设置按钮的对象名称
  如:setTitleButton
  b.在头文件的类中添加slot
    ...
    class MainWindow:public QMainWindow
    {    Q_OBJECT
      public:
         ...
      private:
         ...
      private slots:  //添加slot
         void changeWindowTitleSlot();
    };
    #endif
  c.在.cpp文件中编写槽函数,将信号与槽建立连接
    方法(1):
    在mainwindow.cpp中:
    ...
    ...ui(new Ui::MainWindow)
    {
       ui->setupUi(this);
       //建立连接
       //QObject::connect(sender,SIGNAL(what),receiver,SLOT(dowhat()));
       QObject::connect(ui->setTitleButton,SIGNAL(clicked()),this,SLOT(changeWindowTitleSlot()));  QStackedLayout
    }
    MainWindow::~MainWindow()
    {  delete ui; }
    //写槽函数
    void MainWindow::changeWindowTitleSlot()
    {
       this->setWindowTitle("Hello world");
    }
    
    方法(2):图形下
    右键点击按钮-> go to slot -> clicked()->写槽函数->自动连接






点击按钮关闭整个窗口
方法1:
   F4进入信号与槽编辑模式,选中按钮,拉出类似接地线的形式,信号选clicked(),槽选close();
方法2:
   QObject::connect(ui->closeButton,SIGNAL(clicked()),qApp,SLOT(quit()));


字体 编码
1.设置适合本机环境的字体
  #include <QTextCodec>  //添加头文件 
  int main(int argc, char *argv[]) 
  {  QApplication a(argc, argv);      
   QTextCodec::setCodecForTr(QTextCodec::codecForLocale()); //设置编码          MainWindow w;     
     w.show();         
     return a.exec();
  }  
2.设置GB2312字体
  QTextCodec::setCodecForTr(QTextCodec::codecForName("GB2312"));
 使用该字体的字符串时,要用tr()函数,如:
  ui->pushButton->setText(tr("新窗口"));  


setEchoMode(QLineEdit:Password);   //设置当前的edit为密码格式********
QDir类的entryInfoList()

学习Qt框架是一个非常有价值的过程,尤其是在跨平台应用程序开发领域。以下是根据相关资料整理的Qt框架学习指南和使用教程,帮助系统地掌握Qt的核心知识和实践技能。 ### Qt学习路径 #### 1. 入门基础 首先,理解Qt的基本概念和特点。Qt是一种跨平台的应用程序开发框架,支持多种操作系统,包括Windows、Linux、macOS,甚至嵌入式平台。其核心优势包括: - 跨平台支持,几乎适用于所有主流操作系统。 - 接口设计简洁,易于上手,适合初学者入门。 - 内存管理机制简化,降低了开发难度。 - 开发效率高,适合快速构建图形界面应用程序。 - 活跃的社区支持,便于获取学习资源和技术帮助[^3]。 建议从官方文档和基础教程开始,例如《Qt学习之路》或《QT详解(入门神书)》,这些资料详细介绍了Qt的基础知识,如信号与槽机制、QWidget、QML等基本组件的使用。 #### 2. 开发环境搭建 学习Qt的第一步是配置开发环境。通常推荐使用Qt Creator作为集成开发环境(IDE),它集成了代码编辑器、调试器和界面设计工具。可以从Qt官网下载安装包,并根据操作系统的不同选择合适的版本。 安装完成后,可以尝试创建一个简单的“Hello World”应用程序,熟悉Qt Creator的基本操作和项目结构。 #### 3. 掌握核心模块 Qt的核心模块包括: - **QtCore**:提供基础类,如字符串、文件、容器类等。 - **QtGui**:提供图形渲染、窗口系统集成、基本几何类等。 - **QtWidgets**:传统的UI组件库,适用于桌面应用。 - **QtNetwork**:提供网络通信功能,如HTTP、TCP/UDP等。 - **QtQuick**:基于QML的UI框架,适用于动态用户界面开发。 建议深入学习这些模块的功能,并通过实践项目加深理解。例如,使用QtWidgets开发一个简单的计算器,或使用QtQuick开发一个动态天气应用。 #### 4. 进阶学习 掌握基础后,可以进一步学习以下内容: - **多线程编程**:使用QtConcurrent、QThread等类实现并发处理。 - **数据库操作**:通过Qt SQL模块与SQLite、MySQL等数据库交互。 - **网络编程**:实现HTTP请求、WebSocket通信等。 - **嵌入式开发**:学习如何在嵌入式设备上部署Qt应用。 - **国际化与本地化**:支持多语言界面,适应全球用户。 #### 5. 项目实践 理论学习后,通过实际项目提升技能。可以从简单的项目开始,如记事本、音乐播放器,逐步过渡到更复杂的项目,如数据可视化工具、自动化测试系统等。 此外,可以参考开源项目,如《Qt5开发实战》和《Qt5开发及实例》,了解如何组织代码结构、优化性能、处理异常等问题。 #### 6. 学习资源推荐 - **《Qt学习之路》**:适合初学者的系统性教程。 - **《Qt on Android 核心编程》**:专注于Android平台的Qt开发。 - **《Qt 高级编程》**:深入探讨Qt的高级特性。 - **《Qt 及 Linux 操作系统窗口设计》**:针对Linux平台的UI开发。 - **《Qt之打包发布》**:讲解如何将Qt应用打包并发布到不同平台。 以上资源可在提供的百度云链接中下载PDF版本,方便离线学习[^1]。 #### 7. 社区与交流 加入Qt官方论坛、Stack Overflow、GitHub等社区,参与讨论,解决开发中遇到的问题。活跃的社区环境有助于快速成长。 --- ### 示例代码:创建一个简单的Qt Widgets应用程序 以下是一个使用Qt Widgets创建的简单“Hello World”程序: ```cpp #include <QApplication> #include <QLabel> int main(int argc, char *argv[]) { QApplication app(argc, argv); QLabel label("Hello, Qt!"); label.show(); return app.exec(); } ``` 这段代码创建了一个QApplication实例,并显示一个包含“Hello, Qt!”文本的窗口。通过这种方式,可以快速上手Qt的基本界面开发。 --- ### 代码风格指南 在编写Qt代码时,遵循一致的代码风格非常重要。可以参考项目中的代码风格指南,确保代码的可读性和可维护性。例如,命名规范、类结构组织、信号与槽的使用方式等都应保持统一。 --- ### 项目结构介绍 一个典型的Qt项目目录结构如下: ``` qt-learning-guide/ ├── LICENSE ├── Qt指南.md ├── Qt指南.pdf ├── README.md └── 其他文件及目录 ``` - **LICENSE**:项目使用的开源许可证文件,本项目使用AGPL-3.0许可证。 - **Qt指南.md**:主要教程文件,使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值