文章目录
  1. 1. 窗口、子部件、窗口类型
    1. 1.1. qDebug()

神奇女侠

QWidget类是所有用户界面对象的基类,是基础窗口部件。

窗口、子部件、窗口类型

QWidget类是所有用户界面对象的基类,被称为基础窗口部件。

实例:窗口与子部件:
myWidget1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//#include <QtGui>
#include <QtWidgets>
int main(int argc, char *argv[])
{

QApplication a(argc, argv);
//新建QWidget类对象,默认parent参数是0,所以它是一个窗口
// QWidget * widget=new QWidget();//mark
/*类型1:Dialog 对话框类型*/
QWidget *widget=new QWidget(0,Qt::Dialog);//与上一行代码效果一样
/*窗口标志1: FramelessWindowHint用来产生一个没有边框的窗口*/
// QWidget *widget=new QWidget(0,Qt::Dialog|Qt::FramelessWindowHint);
/* 窗口标志2:WindowStaysOnTopHint用来停留在所有其他窗口上*/
// QWidget *widget=new QWidget(0,Qt::Dialog|Qt::WindowStaysOnTopHint);
/*设置标题*/
widget->setWindowTitle(QObject::tr("I'm a label"));
// label2指定了父窗口为widget,所以不是窗口.
QLabel *label2 = new QLabel(widget);
label2->setText(QObject::tr("label2:i'm not depart windows,i'm just widget part"));
label2->resize(250,100);//改变窗口大小;void resize(int w, int h)
/******************************************************************************************/
/* 新建QLabel对象,默认parent参数是0,所以它是个窗口*/
QLabel *label = new QLabel();
/*类型2:SplanshScreen 欢迎窗口类型*/
// QLabel * label=new QLabel(0,Qt::SplashScreen);
// 设置窗口标题
label->setWindowTitle(QObject::tr("I'm a Windows!"));
// 设置要显示的信息
label->setText(QObject::tr("show what your want!"));
label->resize(250,100);
/******************************************************************************************/

// 在屏幕上显示出来
widget->show(); //代码中有多少个widget就要show多少个
label->show();
/******************************************************************************************/
int ret = a.exec();
/*
* 这里使用new操作符为label2分配了空间,但是并没有使用delete进行释放,
* 这是因为QT在销毁父对象的时候也会自动销毁自独享
*/

delete label;
delete widget;
return ret;
}

运行结果

  • 窗口部件Widget
    窗口部件(Widget)是Qt中建立用户界面的主要元素。像窗口、对话框、标签、按钮、文本输入框等都是窗口部件。

  • 窗口

窗口就是没有父部件的部件,所以又称为顶级部件(top-level widget)。

与其相对的是非窗口部件,即子部件(child widget)

Qt中大部分不仅用作子部件嵌入在别的窗口中,例如程序中的

1


+ QWidget

提供了绘制自己和处理用户输入事件的基本功能,Qt提供的所有界面元素不是QWidget的子类就是与QWidget的子类相关联。
>要设计自己的窗口部件,可以继承自QWidget或者它的子类等。


QWidget的构造函数没有2个参数:

```C++
QWidget * parent=0      // parent就是指父窗口部件,默认值为0,表明没有父窗口。

1
Qt::WindowFlags f=0     // f参数是Qt::WindowFlags类型,是一个枚举类型,分为窗口类型WindowType和窗口标志WindowFlags  ?????

qDebug()

qDebug()函数输出方法:

  • 直接将字符串当作参数传给qDebug()函数,
  • 另一种:使用输出流的方式一次输出多个值

    这种方法必须添加头文件

    1
    
    
    ```C++
    #include <QtWidgets>
    #include<QWidget>
    #include<QDebug>
    int main(int argc,char *argv[])
    {
        QApplication a(argc,argv);
        QWidget widget;
        widget.resize(400,300);     //设置窗口大小
        widget.move(200,100);       //设置窗口位置
        widget.show();
        int x=widget.x();
        qDebug("x: %d ",x);  //输出x的值;  直接将字符串当作参数传给qDebug()函数,
        int y=widget.y();
        qDebug("y: %d  ",y);
        QRect geometry=widget.geometry();       
        QRect frame=widget.frameGeometry();
        qDebug()<<"geometry:"<<geometry<<"frame:"<<frame;         //使用输出流的方式一次输出多个值
    
        qDebug()<<"post:"<<widget.pos()<<endl<<"rect:"<<widget.rect()<<
        endl<<"size:"<<widget.size()<<endl<<"with:"<<widget.width()<<endl<<"height:"
        <<widget.height();
        return a.exec();
    }

运行结果

文章目录
  1. 1. 窗口、子部件、窗口类型
    1. 1.1. qDebug()