1.如何在qt中查看函数的属于哪个类,其返回值是什么
2.代码创建菜单栏、工具栏、状态栏等
创建工具栏,状态栏,有两种调用方式:
1.使用堆区new一个,在堆区创键,函数执行完也是存在的。
2.使用父类中带的创建函数,但是对于有的创建没有这种形式的函数可以调用,一般这种函数都是类名去除了Q,只用后面的。
所以无论任何情况使用第一种都是可以的。
QMenuBar *bar=menuBar();//menuBar函数是QMainwindow类的
QToolBar *toolbar= new QToolBar(this);//放在对象树上
对于Qstatusbar(状态栏),其两种情况都适用,所以都可以调用。
QStatusBar *statusbar2=statusBar();
QStatusBar *statusbar=new QStatusBar(this);
一般对于控件,标签等,只能使用在堆区,new的方式创建
对于一个窗口只能含有一个的类,比如:菜单栏、状态栏,我们将其放入窗口中时,使用的都是set开头的函数进行设置。
对于一个窗口可以含有多个的类,比如:工具栏、铆接部件 我们将其放入窗口中时,都是以add开头的函数进行设置。 一般将这些这些栏、铆接部件放入窗口中都使用的是Qmainwindow类中带的set和add开头的函数
setMenuBar(bar);//setMenubar 也是Qmainwindow的函数
addToolBar(Qt::LeftToolBarArea,toolbar);//addtollbar是Qmainwindow的成员函数,所以可以使用这种方式将工具栏放
setStatusBar(statusbar);//只能有一个设置在窗口中,用的就是set入窗口中
addDockWidget(Qt::BottomDockWidgetArea,dockwidget);//将铆接部件放入窗口中。
当你使用ui去添加一个类时,你的ui就是一个指针,可以指向你所添加的所有类。所有在代码中你可以用ui去调用修改它们的属性。
在Qt中基本所有使用的控件,部件都要包含它的类,这样就不会报错,并且会有提示。
3.在qt中添加资源文件
4.QAction类的介绍:
QAction从名字上我们可以看出,这是一个类,它的功能是等待指令,执行工作。那么这个指令怎么来呢?比如菜单项、工具栏内按钮,用户在点击这些选项或按钮时,Qt得到反馈,执行指定功能。
一、用法
对于菜单栏,有下属的Qmenu,所以创建一个子小菜单就是addmenu函数,再在小菜单下面创建小按钮,就是addaction函数。
对于工具栏 有QToolbar,在下属就是QAction小按钮了,所以添加就是addAction函数。在工具栏中添加一些部件,使用addWidget函数; toolbar->addWidget(btn);
在链接信号时,链接Qmenu菜单项是错误的,只能链接Qacction
ui->setupUi(this);
QMenuBar *menubar=menuBar();
setMenuBar(menubar);
QMenu * filemenu=menubar->addMenu("文件");//新菜单是新建,其菜单指针是filemenu
QAction *newfile=filemenu->addAction("新建");
//这块为什么不能连接菜单项的点击呢?,因为菜单项没有实际的功能,它的点击就是展开下属的所有action
// connect(menubar,&QMenu::triggered,[=](){ //连接菜单是错误的
// QDialog *dialog=new QDialog(this);
// //QDialog dig(this);
// dialog->exec();});
connect(newfile,&QAction::triggered,this,[=](){
QDialog *dialog=new QDialog(this);
//QDialog dig(this);
dialog->exec();
});
5.对话框细节
非模态对话框的创建:在lambda表达式里面创建,必须创建在堆区,否则在栈区会一闪而过。
//模态对话框创建
// QDialog *dialog=new QDialog(this);
// //QDialog dig(this);
// dialog->resize(400,300);
// dialog->exec();
// qDebug()<<"模态对话框弹出";
//非模态对话框创建
//QDialog dig(this);
//dig.show();//这样会一闪而过,被释放了
//这样创建在栈区,lambda表达式是一个匿名函数,函数调用完,里面在栈区创建的东西就会被释放
//在堆区创建
QDialog *dig=new QDialog(this);
dig->resize(400,300);
dig->show();
有枚举值(里面有很多种,你要根据你所需的功能选择对应的枚举值)。
(与工具栏,铆接部件等一样,可以设置停靠区域)
6.Qt中静态成员函数和公共函数
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cbf3d952ec8443f918213447e7a808a.png
因为静态成员函数没有this指针,所有对象公用一个静态成员函数
对于非静态成员函数,this指针是默认就有的,指向调用它的类对象,
非静态成员函数也不可以用类名去调用
7.布局
使用水平或者垂直布局之后,它的图形就会随窗口大小一起变化。
弹簧是Expanding的时候可以根据你窗口的缩放大小,控件可以一直居中显示
修改输入文本框的显示方式
栅格布局,可以进行格子对齐
一般按钮使用图片用 ToolButton
设置标签文本的对齐方式
改变样式表,可以使一些控件更加美观
使用ui指针,半天弹不出来相应控件,需要运行一下