qt 自绘界面实现思路


界面靠拖动也可以,自绘也可以,设置无标题效果,标题栏必须是自绘的。qt界面有三种widget、dialog、mainwindow,思路基本一致,

1.自绘界面要设置标题栏隐藏

 
this->setWindowFlags(Qt::FramelessWindowHint | Qt::WindowSystemMenuHint | Qt::WindowMinMaxButtonsHint);
setAttribute(Qt::WA_TranslucentBackground);

2.设置窗体大小
this->setFixedSize(850,600);

3.widget和dialog基本实现一致,mainwindow本身已经有界面布局,稍微有些差别
先说不太一样的,因为,mainwindow是由centralwidget和menubar和statusbar组成,组件、布局只可以在centralwidget内布置
  centerWindow = new QWidget;
  centerWindow->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Expanding);
  centerWindow->setObjectName(tr("centerWindow"));
 this->setCentralWidget(centerWindow);

 4.新建mainLayout(垂直布局),titleLayout,toolLayout,contentLayout,statusLayout,都是水平布局,每个布局添加好自己的组件,然后mainLayout布局把所有布局添加进来(addLayout),最后centerWindow把主布局添加         进来,centerWindow->setLayout(mainLayout);

  最终代码大概是这样的:

      

   
  titleLayout->addWidget(minButton);
  ...

  mainLayout = new QVBoxLayout();
    mainLayout->addLayout(titleLayout);
    mainLayout->addLayout(toolLayout);
    mainLayout->addLayout(contentLayout);
    mainLayout->addStretch();
    mainLayout->addLayout(status_layout);
    mainLayout->setSpacing(0);
    mainLayout->setContentsMargins(0, 0, 0, 0);
    centerWindow->setLayout(mainLayout);

 





免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM