Qt resizeEvent 控件居中设置

在Qt中我们有时需要让一个控件在窗口居中或是在父控件中居中,而且在窗口拉伸时仍然保持正中央的位置。这里介绍一种方法,用到了主窗口的响应函数resizeEvent(QResizeEvent* event),这个响应函数在窗口的大小改变时会自动调用,该函数如下:

void MainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here
}

需要注意的是,在主程序窗口生成时,会首先调用下这个函数,这个函数可以返回主窗口的大小,但是不能准确的返回上面的控件的大小,这可能是个bug,所以我们如果想要找到上面的一个控件的正中间的位置,需要根据主窗口的大小的值来定位中间控件的中心。

void MainWindow::resizeEvent(QResizeEvent* event)
{
   QMainWindow::resizeEvent(event);
   // Your code here
   int width = ui->centralWidget->width(), height = ui->centralWidget->height();
   ui->item->move(width * 0.25 - 80, (height - 320) / 2 - 8);
   ui->item->move(width * 0.25 - 80, (height - 320) / 2 - 8);
}
时间: 2024-12-09 09:52:09

Qt resizeEvent 控件居中设置的相关文章

QT 窗体控件的透明度设置(三种方法)

整个窗体 当设置QT的窗体(QMainWindow, QDialog)时,直接用 [cpp] view plain copy targetForm->setWindowOpacity() 函数即可实现,效果为窗体及窗体内所有控件都透明化了. 二.自定义页面或控件 当设置一个QWidget(一般自定义页面或控件时用QWidget)时,直接设置其窗体透明度无法实现透明效果,目前找到的方法是将整个QWidget当做图形元素,对该图形元素进行设置透明度效果, [cpp] view plain copy

[学习记录] QT 窗体控件的透明度设置

整个窗体 当设置QT的窗体(QMainWindow, QDialog)时,直接用 targetForm->setWindowOpacity() 函数即可实现,效果为窗体及窗体内所有控件都透明化了. 二.自定义页面或控件 当设置一个QWidget(一般自定义页面或控件时用QWidget)时,直接设置其窗体透明度无法实现透明效果,目前找到的方法是将整个QWidget当做图形元素,对该图形元素进行设置透明度效果, QGraphicsOpacityEffect *opacityEffect=new QG

Qt常用控件+事件+基础绘图(四)

第一个Qt程序新建一个空的项目.pro文件内容示例代码:  1 /* 应用程序抽象类 */ 2 #include <QApplication> 3 #include <QWidget> 4 #include <QPushButton> 5 #include <QDebug> 6  7 int main(int argc, char *argv[]) 8 { 9     QApplication app(argc, argv);10 11     QWidge

控件属性设置

控件属性设置 XIB中设置UILabel文字居中 选中位于视图下方的Label对象,单击检视面板选择条中的Attributes Inspector图标,打开属性面板.在属性面板中找到标题为Alignment的分段控件(seg-mented control).选择中间的那个选项(居中对齐),如图所示. 改变按钮的背景颜色 在属性检视面板中向下滚动,会看到View标题下方的属性.在Background标签右侧,点击颜色面板(白色方块,上面有一条红色的斜线)可以打开颜色拾取器.

qt 窗口控件自动调整大小

/******************************************************************** * qt 窗口控件自动调整大小 * * 在写gui的时候,希望窗口能够自动调整大小,这样就不许要手动调整. * qt creator中就集成了这种方法,在qt中设置即可. * 本文参考链接: * http://www.cnblogs.com/emouse/archive/2013/05/19/3087708.html * * Tony, 2016-5-21,

Qt基本控件及三大布局

Qt基本控件及三大布局 来源: http://blog.csdn.net/a2604539133/article/details/73920696 Qt基本模块 一.Qt的三大布局 QHBoxLayout: 水平显示布局,所有在其上面摆放的控件只能水平排列下去: QVBoxLayout:  垂直显示布局,所有在其上面摆放的控件只能垂直排列下去: QGridLayout  格子显示布局,可以按照表格的形式显示布局: 二.Qt的控件 label:标签,可以显示文本信息,只读: pushbutton

QT绘图技术(二)QCustomPlot - 超强超小巧的qt绘图控件

QCustomPlot - 超强超小巧的qt绘图控件 2016-10-22 16:03:25|  分类: QT| 官方网站:http://www.qcustomplot.com/ 1.0下载地址:http://download.csdn.net/detail/czyt1988/5986701 下载LOFTER我的照片书  | QCustomPlot 超强超小巧的qt绘图控件,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp即可使用,远比qwt方便,若只

为控件Button设置快捷键(组合键)

控件MenuStrip和ContextMenuStrip可通过ShortCcutKeys属性设置快捷键,而控件Button没有ShortcutKey属性,如何为控件Button设置快捷键呢(组合件键)? 1)使用&符号定义<Alt>键,比如:button1.Text=保存(&S),键盘按 Alt+S 相当于点击了button1按钮. 2)通过重写ProcessCmdKey(ref Message msg, Keys keyData)或ProcessDialogKey(Keys

ScrollView子控件高度设置无效

ScrollView子控件高度设置无效 简述 项目中引入了第三方的下拉刷新包PullToRefreshScrollView, 因为我之前布局未考虑下拉刷新功能.后来临时发现增加上去,发现.子控件的高度无法设置.无论怎么设置,一直显示不出来. 后来查阅API文档: 所以在你的ScrollView属性里加入这一句话即可: android:fillViewport="true" 版权声明:本文为博主原创文章,未经博主允许不得转载.(转载请注明出自 AllenCoder)