Ventana, ventana secundaria, tamaño de geometría de ventana

#include "mainwindow.h"
#include <QApplication>
#include <QLabel>
#include <QWidget>
int main(int argc, char *argv[])
{
    
    
    QApplication a(argc, argv);
    MainWindow w;
//    w.show();
    //新建一个窗口 没有父对象
    QWidget *widgetParent = new QWidget();
  //QWidget *wiidgetParent = new QWidget(0,Qt::FramelessWindowHint); 
  //QWidget构造函数:QWidget::QWidget(QWidget * parent = 0, Qt::WindowFlags f = 0) 
    widgetParent->setWindowTitle(QObject::tr("我是widget窗口"));
    // labelChild指定了父窗口为widget,所以不是窗口
    QLabel *labelChild = new QLabel(widgetParent);
    labelChild->setText(QObject::tr("labelChild:我不是独立窗口,\n只是widget的子部件"));
 
    // 新建QLabel对象,没有父对象
    QLabel *labelParent = new QLabel();
    labelParent->setWindowTitle(QObject::tr("我是labelParent窗口"));
    //设置窗口的大小
    labelParent->resize(300,300);
    // 设置要显示的信息
    labelParent->setText(QObject::tr("labelParent:我是个窗口"));
 
 
    // 在屏幕上显示出来
    labelParent->show();
    widgetParent->resize(300,300);
    widgetParent->show();
 
 
    int ret = a.exec();
    delete widgetParent;//会自动删除labelChild;
    delete labelParent;
    return ret;
}

Los widgets (widgets) incluyen QMainWindow, QWidget, QDialog, botones, tablas, botones de radio y otros widgets.
Generalmente, llamamos a los widgets que no están incrustados en otros widgets como ventanas. Las
ventanas generalmente tienen barras de título y bordes.

Una ventana es un componente sin un componente principal, por lo que se denomina componente de nivel superior y su opuesto es un componente que no es de ventana, también conocido como componente secundario.

Inserte la descripción de la imagen aquí
Ejemplos de señales de uso común

Qt :: FramelessWindowHint se usa para generar una ventana sin marco.

Qt :: WindowStaysOnTopHint se usa para hacer que la ventana permanezca encima de todas las demás ventanas.

Qt :: Dialog se usa para generar una ventana de diálogo (es decir, una ventana con un signo de interrogación)

Qt :: SplashScreen se usa para generar una ventana sin borde

Widget: Abreviado como Widget, es el componente principal de la construcción de la interfaz Qt. Los widgets no solo incluyen QMainWindow, QDialog y QWidget que mencionamos anteriormente, sino que también los botones, etiquetas, tablas, botones de radio, etc. que usamos comúnmente son todos widgets.

Ventana: llamamos ventanas a los componentes que no están incrustados en otros componentes. Las ventanas generalmente tienen barras de título y bordes. Una ventana es un componente sin un componente principal, por lo que se denomina componente de nivel superior.

Subcomponentes: también conocidos como componentes que no son de ventana, la mayoría de los componentes en Qt se utilizan como subcomponentes, están incrustados en otras ventanas, como botones, etiquetas, cajas de radio, etc., solemos decir.


Constructor de QWidget de tipo de ventana : QWidget :: QWidget (QWidget * parent = 0, Qt :: WindowFlags f = 0)

(1) El padre anterior se refiere al widget padre, y el valor predeterminado es 0, lo que indica que no hay una ventana principal;

(2) El parámetro f es del tipo de enumeración Qt :: WindowFlags, que se divide en tipo de ventana (WindowType) y banderas de ventana (WindowFlags).

(3) El primero puede definir el tipo de ventana. Por ejemplo, donde f = 0, significa que se usa Qt :: Widget. Este es el tipo predeterminado de QWidget. Si este tipo de widget tiene una ventana principal, entonces es un widget secundario. De lo contrario, es una ventana independiente.

(4) Este último incluye muchos tipos,

Ejemplos de señales de uso común

Qt :: FramelessWindowHint se usa para generar una ventana sin marco.

Qt :: WindowStaysOnTopHint se usa para hacer que la ventana permanezca encima de todas las demás ventanas.

Qt :: Dialog se usa para generar una ventana de diálogo (es decir, una ventana con un signo de interrogación)

Qt :: SplashScreen se usa para generar una ventana sin borde.

El tamaño geométrico
de la ventana Para una ventana, a menudo es necesario establecer su tamaño y posición en tiempo de ejecución Este es el diseño geométrico de la ventana. Como ha visto en el ejemplo anterior, el tamaño predeterminado de widgetParent es el tamaño de la parte secundaria labe2Child que contiene. Incluso si widgetParent establece el tamaño, está sujeto a labe2Child.

La posición de widgetParent y labe2Child en la ventana cuando aparecen también es incierta. Para el tamaño y posición de la ventana se utilizan diferentes funciones para obtenerla según contenga borde y barra de título. Puede ver las palabras clave Window y Dialog Widgets en el índice de ayuda El diseño geométrico de la ventana se muestra en el documento.

Las funciones aquí se dividen en dos categorías, una categoría contiene marcos y la otra categoría no contiene marcos:

Contiene marcos: funciones como x (), y (), frameGeometry (), pos () y move ();

No incluye marcos: funciones como geometría (), ancho (), alto (), rect () y tamaño ().

Puede agregar el siguiente código para obtener:

qDebug()<<"widgetParent->x();"<<widgetParent->x();
qDebug()<<"widgetParent->y();"<<widgetParent->y();
qDebug()<<"widgetParent->pos();"<<widgetParent->pos();
qDebug()<<"widgetParent->frameGeometry();"<<widgetParent->frameGeometry();
qDebug()<<"widgetParent->geometry();"<<widgetParent->geometry();
qDebug()<<"widgetParent->width();"<<widgetParent->width();
qDebug()<<"widgetParent->height();"<<widgetParent->height();
qDebug()<<"widgetParent->size();"<<widgetParent->size();
qDebug()<<"widgetParent->rect();"<<widgetParent->rect();

//把主窗体几何位置给子窗体
 child->setGeometry(this->geometry());
 

Supongo que te gusta

Origin blog.csdn.net/weixin_44972129/article/details/109748349
Recomendado
Clasificación