显示为对话框时,派生小部件不以父部件为中心

2023-12-06

我有一个从 QWidget 派生的类 MyListWidget。我将父级和标志传递给基类 QWidget 构造函数(在测试中尝试了 Qt::Dialog 和 Qt::Popup),但自定义小部件显示在屏幕中央,而不是以其父级为中心。

MyListWidget* myListWidget = new MyListWidget(this, Qt::Dialog);

这是构造函数:

MyListWidget::MyListWidget(QWidget* parent, Qt::WindowFlags flags)
    : QWidget(parent, flags),
      ui(std::auto_ptr<Ui::MyListWidget>(new Ui::MyListWidget))
{
    ui->setupUi(this);
}

如果我将此小部件放入单独的对话框中,则一切都会按预期工作。但为什么?

缠绕工作:

QDialog* popup = new QDialog(this, Qt::Popup);
QVBoxLayout* hLayout = new QVBoxLayout(popup);

// ... doing list creation like above

hLayout->addWidget(mmyListWidget);
popup->setLayout(hLayout);
const int width = mapListWidget->width();
const int height = mapListWidget->height();
popup->resize(width, height);

你知道这里会发生什么吗?


QWidget默认情况下不显示在中心位置,因此您需要手动将其居中(可以在构造函数中执行此操作):

MyListWidget::MyListWidget(QWidget* parent, Qt::WindowFlags flags)
    : QWidget(parent, flags),
      ui(std::auto_ptr<Ui::MyListWidget>(new Ui::MyListWidget))
{
    ui->setupUi(this);
    move(
       parent->window()->frameGeometry().topLeft() +
       parent->window()->rect().center() - rect().center()
    );
}

附:提防std::auto_ptr,你可能想使用std::unique_ptr这些日子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

显示为对话框时,派生小部件不以父部件为中心 的相关文章

随机推荐

  • 在 C++ 中读取和写入西里尔文文件

    我必须首先读取西里尔文文件 然后随机选择随机行数并将修改后的文本写入不同的文件 拉丁字母没有问题 但我遇到了西里尔文字的问题 因为我得到了一些垃圾 这就是我尝试做这件事的方式 说 归档input txt is 我必须阅读它 并将每一行放入向
  • C++ 交换字符串

    我正在尝试创建一个非递归方法来交换 c 样式字符串 它在 Swap 方法中引发异常 无法找出问题所在 void Swap char a char b char temp temp a a b b temp void Reverse Stri
  • 如何使用 QueryOver 来过滤特定类?

    我目前正在动态构建查询 如下所示 QueryOver
  • 无法安装 pyHook 包“无法找到满足 pyHook 要求的版本”

    我正在尝试安装pyHook封装在pycharm但得到标题中的错误 我已经在cmd中成功安装了它pip install pyHook 1 5 1 cp37 cp37m win amd64 whl 但是当我在 pycharm 中安装它时 我得到
  • 用于运行 JasperReport 库的 Python 应用程序 - 即没有 JasperServer

    我希望尝试从 python 应用程序中运行 Jasper 报告 已用 iReports 编写并导出到 xml 而无需与 JasperServer 实例进行通信 这可能吗 我做了一些谷歌搜索 只遇到了一个 2 年前的 SO 问题 其中建议的答
  • 如何使用 CocoaAsyncSocket 读取数据?

    我创建了一个TCP 套接字连接在我的应用程序中DelegatedidFinishLaunchingWithOptions方法 这是最简单的部分 我已经成功连接到我的服务器 我在视图中从服务器读取数据时遇到很大困难 我一直在浏览有关如何正确
  • 创建唯一的日期序列

    假设我想生成一个数据框 其中包含一列 采用以下格式构造 2011 08 01 2011 08 02 2011 08 03 2011 08 04 我想知道是否可以使用以下方法生成这些数据seq 命令 类似以下内容 显然不起作用 seq 201
  • Java Web Start“找不到 URL 的缓存资源”

    在带有 JRE 7 update 21 的 Windows 7 和 8 两种情况下均为 32 位 下 我遇到了错误Cannot find cached resource for URL yyyyyyyyyyy jar对于在更新 21 之前在
  • 根据前一个页面的数据,动态地在表单中创建一个新页面。页

    我对 google apps script 中的表单有疑问 假设我已经创建了一个带有单页和文本输入框的表单 是否可以根据文本框中的数据动态创建后续页面 就像是 第一页 插入客户 ID gt 继续 gt 第二页 有关客户的信息 我知道有 on
  • 防火墙后面的 WCF 服务 – 如何设置端口转发?

    我刚刚开始接触 WCF 编程 我在我的工作计算机上设置了一个自托管测试 Web 服务 该计算机位于防火墙后面 它在http localhost 8000 MyTestService 我可以通过浏览器访问服务页面 一切正常 现在我想从位于不同
  • iPod Touch 4G 认为它是 iPad

    我构建了一个通用应用程序 可以在 iPad iPhone 4G 3GS 和 3G 上完美运行 但在 iPod Touch 4G 上运行时 它无法正常运行 我没有 iPod Touch 可供测试 但 Beta 测试人员告诉我 它可以很好地安装
  • 如何创建 Facebook 状态箭头文本框?

    如何获得像 Facebook Status TextBox 这样仅包含 html 和 css 的弯曲文本框 有人可以说明我该怎么做吗 我的跨浏览器 仅 CSS 版本的 Facebook 样式文本框 HOW TO 我用过 before在内部容
  • 使用 Scanner 类时如何忽略 .txt 的第一行

    我有一个文本文件 内容如下 Description SKU Retail Price Discount Tassimo T46 Home Brewing System 43 0439 6 17999 0 30 Moto Precise Fi
  • 数据框:单元格级别:将逗号分隔的字符串转换为列表

    我有一个 CSV 文件 其中包含有关汽车行程的信息 我想整理这些数据 以便为每个旅程 每一行 提供一个列表 该列表应包含作为列表中第一项的旅程代码 然后将所有后续 MGRS 单元作为单独的项目 最后 我希望将所有这些旅程列表分组到父列表中
  • 是否可以在 Azure 上运行 KVM

    Azure Fabric 似乎运行在 Hyper V 的定制版本上 是否可以在 Azure 上运行 KVM 虚拟化实例 使用嵌套虚拟化 我有一个基于 Debian 的自定义 VHD 比如说 根据本文档https learn microsof
  • 全屏背景视频?

    我想知道是否有人考虑过或遇到过任何现实的方法来为网站提供全出血背景视频 而不会导致网站速度非常慢 理想情况下我不想使用 Flash 我所说的全出血是指从屏幕的边缘到边缘 就像桌面壁纸一样 如果你不想要闪光灯那么尝试使用银光
  • 使用maven和jenkins,如何测试程序员是否做了一些测试用例?

    我正在开发许多项目 我们使用 Java Springs Maven 和 Jenkins 进行 CI 但我遇到了一些程序员没有向项目添加真正的 junit 测试用例的问题 我希望 maven 和 jenkins 在部署到服务器之前运行测试 一
  • 通过 Azure Functions 对 Azure AD 中的用户进行身份验证(验证用户名和密码)

    是否可以创建一个将用户名和密码作为输入参数的 Azure 函数 并且函数应该根据 Azure AD 验证用户 首先 值得一提的是 将 Azure AD 用户的用户名和密码作为应用程序 Azure 函数或 Web 应用程序或您正在开发的任何其
  • R中的线性回归无需复制内存中的数据?

    进行线性回归的标准方法是这样的 l lt lm Sepal Width Petal Length Petal Width data iris 然后使用predict l new data 进行预测 其中 new data 是一个数据帧 其列
  • 显示为对话框时,派生小部件不以父部件为中心

    我有一个从 QWidget 派生的类 MyListWidget 我将父级和标志传递给基类 QWidget 构造函数 在测试中尝试了 Qt Dialog 和 Qt Popup 但自定义小部件显示在屏幕中央 而不是以其父级为中心 MyListW