Qt学习第一天

(一)Qt相关

  1. 可以在bash直接执行
    1)assistant(Qt助手)//Qt帮助手册
    2)qmake(Qt构建器)
    3)designer(Qt设计师)//图形化编辑工具
    4)uic(Qt界面转换器)//将ui文件抓换为c++代码
    5)moc(Qt元对象编译器)//将qt语法扩展还原为标准C++
    6)rcc(Qt资源编译器)//将图片等资源编译为C++代码
    7)qtcreator(Qt创造器)//Qt的继承开发环境(IDE)

  2. Qt帮助手册使用(assistant)
    1)先读第一句话,了解该类类功能,如果看不懂,可以“more”链接,跳转详细说明位置.
    2)往下了解头文件、构建选项(QT+=widgets)、继承关系
    3)Properties(成员变量)
    4)Public Functions(公有的成员函数)
    5)Reimplemented Public Functions(重实现的公有虚函数)
    6)Public Slots(槽函数)//Qt语法扩展
    7)Signals(信号)//Qt语法扩展
    8)Static Public Members(静态的公有成员)
    9)Reimplemented Protected Functions(保护的虚函数)
    10)Detailed Description(详细说明)

(二)第一个程序

  1. 创建工程目录
    mkdir Hello
    注:每个Qt程序都应该放在独立目录下
  2. 进入工程目录,编写源代码(cpp)
    cd Hello
    vi main.cpp
  3. 执行“qmake -project”,生成与平台无关的工程文件(Hello.pro)
    注:需要向工程添加qmake构建选项
    QT += widgets //将来加载widgets模块对应头文件和库文件
  4. 执行“qmake”,根据上一步工程文件,生成编译链接的Makefile
  5. 执行“make”,根据Makefile完成编译和链接
  6. 测试运行“./Hello”
    注:如果代码有语法错误,修改代码后,再次执行"make"即可,前面3、4无需重复执行.
    #include <QApplication>
    #include <QLabel>
    int main(int argc,char** argv){
        //创建Qt应用程序
        QApplication app(argc,argv);
        
        //创建标签控件(组件\部件\构件) 
        QLabel label("Hello Qt!");
        //显示标签
        label.show();
    
        //让应用程序进入事件循环
        return app.exec();
    }
    

(三)Qt字符串

  1. 常见编码
    1)linux系统默认:utf-8
    2)windows系统默认:gbk/gb2312/gb18030
    3)Qt的QSring字符串默认:unicode(utf-16)

  2. 编码转换类(QTextCodec)
    //创建GBK编码对象
    QTextCodec *codec = QTextCodec::codecForName(“GBK”);
    //将GBK中文字符串转换为unicode编码
    QString string = codec->toUnicode(“GBK中文字符串”);
     
    注:如果构造QString字符串对象时,如果没有显式转码,用的是utf-8的"常量字符串"默认会调用fromUtf8将其自动转换为Qt内部使用unicode编码. 当然,如果不是utf-8的字符串,同样会默认调用fromUtf8,只不过会乱码罢了。

(四) 父窗口(容器窗口)

  1. 父窗口可以用于管理整个界面,在创建控件时可以指定停靠在父窗口上面,如果没有指定父窗口则飘在外面形成独立的窗体.

  2. 常用的父窗口类
    1)QWidget //图形控件基类
    2)QMainWindow //主窗口(QWidget子类)
    3)QDialog //对话框(QWidget子类)

  3. QWidget类中两个常用成员函数
    1)调整父窗口或控件大小
    void resize(int w,int h);
    2)调整父窗口或控件位置
    void move(int x,int y);

    #include <QApplication>
    #include <QLabel>
    #include <QPushButton>
    #include <QWidget>
    #include <QDialog>
    #include <QMainWindow>
    #include <QFont>//字体
    int main(int argc,char** argv){
        QApplication app(argc,argv);
        //创建父窗口对象
        //QWidget parent;
        //QDialog parent;
        QMainWindow parent;
        //设置父窗口字体大小
        QFont font;
        font.setPointSize(20);
        parent.setFont(font);
        //设置父窗口大小和位置
        parent.resize(480,320);
        parent.move(200,100);
        
        //创建label并停靠在父窗口上面
        QLabel label("我是标签",&parent);
        label.move(50,50);
        label.resize(150,50);
        //创建button并停靠在父窗口上面
        QPushButton button("我是按钮",&parent);
        button.move(50,200);
        button.resize(150,50);
        //动态创建button并停靠在父窗口上面
        //当父窗口被销毁时,上面停靠的动态对象会自动被
        //delete,无需手动执行detele.
        QPushButton* button2 = 
            new QPushButton("我也是按钮",&parent);
        button2->move(300,200);
        button2->resize(150,50);
    
        //显示父窗口,上面停靠的控件也会一起被显示
        parent.show();
        
        return app.exec();
    }
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值