赞
踩
第一种方式:
- QPushBtton *btn = new QPusshButton;
- //btn->show();另开一个窗口显示按钮
- //设置按钮父对象为窗口
- btn->setParent(this);
第二种方式:
- QPushButton *btn = new QPushButton("我创建的按钮",this);
- this->resize(600,600);
区别:
方式一:窗口默认大小,按钮显示在左上方
方式二:窗口是按照按钮的大小创建,所以需要重新设置窗口大小
具体信息查文档,这里只提示函数名,形参不提供
属性 | 含义 |
---|---|
setText | 设置按钮内容 |
move | 设置按钮显示位置 |
setFixedSize | 设置按钮固定大小 |
总结:1、组件需要指定父类,不然这个组件是新的组件,调用show函数会新开一个窗口。2、指定父类后不需要手动释放资源,父对象会自动调用析构函数。
QObject是以对象树的形式组织起来的。
QWidget是能够在屏幕上显示的一切组件的父类。
1、QWidget、QDialog和QMainWindow的关系
2、常用控件的关系
3、窗口的分类与继承关系
connect(sender,signal,receiver,slot);
参数:
1、sender:信号发出者
2、signal:信号
3、recerver:信号的接收者
4、slot:接收到信号执行任务(槽函数)
含义:发出信号
总结:
1、发送者与接收者需要是QObject的子类(槽函数全局,lambda除外)
2、信号和槽函数返回值都是void
3、信号需要声明不需要定义实现,槽函数需要声明也需要定义实现()
4、槽函数是普通的成员函数,作为成员函数,会受到public、private、protected的影响
5、使用emit在恰当的位置发送信号
6、使用connect()函数连接信号与槽
7、任何成员函数、static函数、全局函数和Lambda表达式都可以作为槽函数
8、信号槽要求信号和槽参数一致,所谓的一致,是参数类型的一致
9、如果信号和槽的参数不一致,允许的情况是。槽函数的参数可以比信号的少,即便如此,槽函数存在的顺序也必须和前面的几个一致起来。这是因为,你可以在槽函数中选择忽略信号传来的数据(也就是槽函数的参数比信号少)
第一种方式(new的方式):
说明:该方式需要创建多个菜单栏时可用,一般菜单栏最多有1个,所以这种方式有点浪费资源
- //创建菜单栏
- QMenuBar *menubar = new QMenuBar(this);
- this->setMenuBar(menubar);
- //创建菜单
- QMenu *menu1 = new QMenu("文件");
- QMenu *menu2 = new QMenu("编辑");
- QMenu *menu3 = new QMenu("构建");
- menubar->addMenu(menu1);
- menubar->addMenu(menu2);
- menubar->addMenu(menu3);
-
- //创建菜单项
- QAction *act1 = new QAction("打开文件");
- QAction *act2 = new QAction("另存为");
- QAction *act3 = new QAction("关闭");
- menu1->addAction(act1);
- menu1->addAction(act2);
- menu1->addAction(act3);
第二种方式(成员函数方式):
说明:该方式只能一个菜单栏,如果该窗口已经存在菜单栏,返回之前已经创建好的菜单栏对象的指针
- //创建菜单栏
- QMenuBar *menubar = menuBar();
- //创建菜单
- QMenu *menu1 = new QMenu("文件");
- QMenu *menu2 = new QMenu("编辑");
- QMenu *menu3 = new QMenu("构建");
- menubar->addMenu(menu1);
- menubar->addMenu(menu2);
- menubar->addMenu(menu3);
-
- //创建菜单项
- QAction *act1 = new QAction("打开文件");
- QAction *act2 = new QAction("另存为");
- QAction *act3 = new QAction("关闭");
- menu1->addAction(act1);
- menu1->addAction(act2);
- menu1->addAction(act3);
第一种方式(new的方式):
说明:通过new的方式构造工具栏,可以设置工具栏初始方式
- //创建工具栏
- QToolBar *toolbar = new ToolBar(this);
- this.addToolBar(toolbar);
- //创建工具项
- QAction *act1 = new QAction("打开文件");
- QAction *act2 = new QAction("另存为");
- QAction *act3 = new QAction("关闭");
- QAction *act4 = new QAction("工具");
-
- toolbar.addAction(act1);
- toolbar.addAction(act2);
- toolbar.addAction(act3);
- toolbar.addAction(act4);
第二种方式(成员函数方式):
说明:通过函数方式构造工具栏,不能设置工具栏初始方式
- //创建工具栏
- QToolBar *toolbar = addToolBar();
- //创建工具项
- QAction *act1 = new QAction("打开文件");
- QAction *act2 = new QAction("另存为");
- QAction *act3 = new QAction("关闭");
- QAction *act4 = new QAction("工具");
-
- toolbar.addAction(act1);
- toolbar.addAction(act2);
- toolbar.addAction(act3);
- toolbar.addAction(act4);
- //QStatusBar *statusbar = new QStatusBar(this);
- //this.setStatusBar(statusbar);
-
- QStatusBar *statusbar = statusBar();
- //添加正式信息(一般位于状态栏左侧)
- QLable *label1 = new QLabel("打开文件",this);
- statusbar->addWidget(label1);
-
- //添加永久信息(一般位于状态栏右侧)
- QLable *label2 = new QLabel("www.baidu.com",this);
- statusbar->addPermanagementWidget(label2);
- //创建铆接部件
- QDockWidget *dockwidget = new QDockWidget("这是一个铆接部件", this);
-
- //将浮动窗口添加到mainwindow
- this‐>addDockWidget(Qt::TopDockWidgetArea, dockwidget);
- //创建铆接部件
- QDockWidget *dockwidget = new QDockWidget("这是一个铆接部件", this);
- //创建文本编辑器
- QTextEdit *edit = new QTextEdit("文本编辑器", this);
- //设置中心部件
- dockwidget‐>setWidget(edit);
- //将浮动窗口添加到mainwindow
- this‐>addDockWidget(Qt::TopDockWidgetArea, dockwidget);
-
1、首先在项目里创建一个装图片的文件夹(img)
2、在项目上右键选择添加新文件
3、选择Qt界面的Qt Resources File(资源文件)
4、添加前缀和图片信息
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。