当按钮大小改变时增加按钮字体大小

2023-12-20

我有一个 Qt 应用程序,其主窗口有五个按垂直顺序排列的按钮。 它们都有相同的尺寸。

我想做的就是当应用程序全屏显示时增加按钮标签的字体大小。 我真的很感激一个不需要太多代码的解决方案......希望这是可以在 Qt Designer 中完成的事情,但我找不到一种方法。

有什么建议么?

Best,

吉他流


我想不出有什么方法可以在设计器中做到这一点,但它确实没有太多代码。这是一个快速而简单的概念证明。您需要考虑利润(使用QStyle::pixelMetrics等等),但你明白了。

#include <QtGui>

class FontAdjustingButton : public QPushButton {
public:
  explicit FontAdjustingButton(QWidget *parent = NULL) : QPushButton(parent) {
    setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
  }
protected:
  void resizeEvent(QResizeEvent *event) {
    int button_margin = style()->pixelMetric(QStyle::PM_ButtonMargin);
    QFont f = font();
    f.setPixelSize(event->size().height() - button_margin * 2);
    setFont(f);
  }
};

int main(int argc, char **argv) {
  QApplication app(argc, argv);
  QWidget w;
  QVBoxLayout *layout = new QVBoxLayout;
  for (int i = 0; i < 5; ++i) {
    FontAdjustingButton *btn = new FontAdjustingButton;
    btn->setText(QString("Hello, world %1").arg(i));
    layout->addWidget(btn);
  }
  w.setLayout(layout);
  w.show();
  return app.exec();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当按钮大小改变时增加按钮字体大小 的相关文章

  • QWebSocketServer - 不释放内存

    首先 我在安全 websocket 服务器应用程序上运行 valgrind 并发现了一个问题 在 Qt Memcheck 中我必须检查 外部错误 看到它 一些字节是肯定输了 指着我的main就在我的地方QCoreApplication ex
  • QWinTaskbarProgress 不会显示

    我使用的是windows7和Qt5 3 0 我在 MainWindow 的构造函数中添加了以下内容 但任务栏上没有显示任何内容 我错过了什么 QWinTaskbarProgress pTaskbarProgress new QWinTask
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 如何将flex和bison与Qt项目集成?

    我正在 git 源代码控制下使用 Qt4 制作 GUI 程序 Github页面 https github com vinayak garg dic sim 项目的一小部分需要扫描和解析 所以我想在项目中使用flex和bison 我能想到3种
  • 从 Qt 更改屏幕分辨率?

    我想更改屏幕分辨率 然后使用一个 ActiveX 控件 Flash 播放器 进入全屏 显然 仅适用于 Windows 的解决方案就可以了 有 Qt api 吗 还是我需要深入研究 winapi 如果是这样 我该在哪里查找 关键字 谢谢您的帮
  • Android 版 Qt 和 BoringSSL

    我正在开发一个基于 Qt 的 Android 应用程序 它使用 QSslSocket 下载数据 由于 Android 从 OpenSSL 转向 BoringSSL 因为依赖 OpenSSL 库的 Marshmallow Qt 程序在 And
  • 在Qt中,如何正确实现委托?

    我遵循模型 视图 控制器范例 我很确定模型和视图是正确的 但我认为我的代表做错了一些事情 一切都 有效 除了第一次单击控件只是 点亮控件 而第二次单击与之交互之外 这是代表通常的实施方式吗 我的实现需要大量的构造和销毁 由scoped pt
  • cmake 找不到 Qt4

    由于4 8 0已经发布 我重新安装了Qt 现在我也想使用cmake 为了使 cmake 工作 我记得必须添加 mingw bin 文件夹 QtSDK Desktop Qt 4 7 3 到Qt4 7 3中的PATH 所以我猜测在中会有一个类似
  • 在 Windows 上从源代码构建 PhantomJS-2

    我正在尝试基于这些在 Windows 8 1 x64 上从源代码构建 PhantomJS 2 的开发版本指示 https github com ariya phantomjs wiki PhantomJS 2 但是我收到以下错误 mingw
  • 如何进行多个 d3 窗口大小调整事件

    我有三个svg一页上的元素 每个元素都由 D3 陪伴 每个都有自己的页面调整大小逻辑 由我写的简单模块 https github com TimeMagazine d3 base让他们做出反应 问题在于 只有最后一个调整大小事件被触发 因为
  • 如何使用bind将成员函数作为函数指针传递?

    我试图将成员函数作为函数指针传递 这样我就不需要依赖单例或全局函数来处理 Qt 5 中的 Qt 消息 据我所知 我的 std function 是正确的类型 它具有正确的签名 并且绑定应该允许我插入隐式this指针 本质上是将成员函数传递为
  • 在另一个中使用 QAbstractListModel

    我在尝试使用 Qt QML 为我的应用程序开发数据模型时遇到问题 我已经用过一个QAbstractListModel能够将海关数据模型从 C 传递到 QML 并且它对于简单模型 例如基于字符串和布尔的模型 来说就像一个魅力 但现在我需要建立
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • QtWebEngine Quicknano 在嵌入式 Linux 中没有声音

    我已将 QtWebEngine 编译到我的 i MX6 嵌入式设备中 当我尝试使用 Quicknanobrowser 播放 YouTube 视频时 视频会播放 但没有声音 事实上 当我尝试播放音频文件时没有声音hpr dogphilosop
  • Qmake 不支持源目录下的构建目录

    我创建了一个可以在 OS X 上编译和运行的应用程序 我现在想开始让它在 Windows 上运行 首先 我将项目复制到 Windows 机器上并尝试编译 但收到此错误 警告 Qmake不支持源目录下的构建目录 有任何想法吗 将影子构建目录设
  • iOS 8 单元格大小调整

    我有一个子类UITableViewCell我覆盖setFrame 向单元格添加插图 在 iOS 7 中 一切似乎都工作正常 而在 iOS 8 上 表视图正确加载单元格 但当我刷新表视图时 单元格的大小会调整 通过注释中的代码setFrame
  • 在 Qt 中创建/写入新文件

    我正在尝试写入文件 如果该文件不存在 则创建它 我在互联网上搜索过 但没有任何效果 我的代码目前看起来像这样 QString filename Data txt QFile file filename if file open QIODev
  • QGraphicsView 在完整布局中未最大化

    I have following GUI having four QGraphicView objects 正如您在每个视图下看到的那样 它有四个工具按钮 为了最大化视图 我连接了工具按钮的信号来隐藏其他三个视图的插槽 并将大小策略设置为扩
  • HTML5中如何隐藏video标签的全屏按钮

    我需要隐藏 HTML5 中视频标签的全屏按钮 有什么办法可以实现吗 Thanks 我认为你可以通过更改 css 来实现这一点 document fragments 这些是 DOM1 规范 所有浏览器都支持 但关于样式 我不确定 Simple
  • 渲染具有透明度的纹理时,OpenGL 不需要的像素

    我已经为这个问题苦苦挣扎了一段时间了 当我使用 OpenGL 渲染 2D 纹理 在无透明度和部分透明度之间的过渡上具有透明度值 时 我得到了一些烦人的灰色像素 我认为这是像素值插值的产物 关于如何改进这一点有什么想法吗 I m attach

随机推荐

  • 制作一个 24/7 运行并从命名管道读取的 Perl 守护进程

    我正在尝试使用 perl 制作一个日志分析器 分析器将在 AIX 服务器上的后台全天候 24 7 运行 并从系统日志将日志定向到的管道 从整个网络 读取 基本上 logs from network gt named pipe A gt pe
  • TDD:您为单元测试公开了哪些方法?

    TDD 有一个方面我从未完全理解 假设有人要求您实现一个简单的 Stack 对象 如果您的设计正确 您将得到一个非常最小且干净的 API 认为 push pop and isEmpty 除此之外 任何事情都会过度抑制需求 并让用户有太多的空
  • 导出和导入 IndexedDB 数据

    我正在制作一个供我自己使用的工具 需要一个简单的数据库 这似乎是学习 HTML5 IndexedDB API 的好机会 但重要的是我在任何时候都不会丢失数据 我想备份浏览器的配置文件目录就可以进行备份 但我也希望可能使用不同的计算机 因此导
  • 从github导入ADT Eclipse中的android项目

    我正在尝试将 android 项目从 github 导入到 ADT Eclipse 中 但当我克隆它时 它在存储库中找不到任何项目 该仓库显然是一个android应用程序项目 从源代码来看 但没有找到可以导入的项目 我的步骤如下 在 包资源
  • 在函数重载中将右值引用实现为参数

    我已经询问过有关代码审查和软件工程的问题 但该主题不适合该网站 因此我在这里询问希望这不是基于意见的 我是一名 老派 C 开发人员 我已经停留在 C 2003 但现在我已经阅读了一些有关现代 C 11 17 的书籍 并且正在重写我的一些库
  • Python3.10源码venv已经改变

    我在个人仓库上做了一些 python leetcode 在我将 Kubuntu 升级到 22 04 后 我意识到当前的 venv 不起作用 我想我需要重新创建 venv 安装了 python3 10 venv 但我无法获取并激活它 事实上
  • Apache Spark:map、flatMap、mapPartitions、mapPartitionsWithIndex 的比较

    Apache Spark map flatMap mapPartitions mapPartitionsWithIndex 的比较 欢迎提出建议 以提高我们的知识 地图 函数 它有什么作用 通过提供的函数传递 RDD 的每个元素 即功能 平
  • 优化运行时间:改变igraph中边的权重需要很长时间。有没有办法优化它?

    我正在从 osmar 对象构建的 igraph 中搜索一组边 并希望更改这些边的权重 由于我的图表很大 因此这项任务需要很长时间 由于我在循环中运行此函数 因此运行时间变得更大 有什么办法可以优化这个吗 这是代码 library osmar
  • 使用后如何从 GPU 清理和卸载 WebGL 画布上下文?

    如何清理 WebGL 上下文程序并从 GPU 和 dom element 卸载程序 缓冲区和所有内容 我想确保我们没有乱扔垃圾 另外 如果可能的话 重用画布会很好 而且我不知道是否会这样 2d or webgl语境 您可以丢失对 gl 上下
  • 在 C# 中从 Msi 中的自定义操作强制重新启动

    我们如何在 C 自定义操作中提示安装后重新启动计算机 我们使用 VS 2005 的安装项目进行安装 并且需要以编程方式决定提示重新启动 因此不会在每次安装时发生 只是在某些安装上发生 更新 我们首先正在寻找已经内置于 MSI 自定义操作系统
  • WPF 中的自定义附加事件

    我可能在这里用错了术语 但我想我正在尝试创建一个附加事件 在 Surface SDK 中 您可以执行以下操作
  • 谷歌浏览器扩展制作中的内容安全策略错误

    我正在制作一个 chrome 扩展 它将在新选项卡中打开页面上的所有链接 这是我的代码文件 清单 json name A browser action which changes its icon when clicked version
  • 如何禁用 NGINX 文件日志记录

    我对 Nginx 很陌生 注意到每当我在本地访问我的服务器时 它都会记录 我想知道 我需要创建哪些配置文件 以及将它们放在哪里 以及我必须在其中放入什么来禁用该行为 我试图防止喷出 我正在 aws 上运行我的应用程序 并收到许多格式为 17
  • 无法使用“角色”包通过流星向用户添加角色

    我正在尝试使用 Atmosphere 上提供的 角色 包 但我无法让它与 Accounts onCreateUser 一起使用 我可以在 github 上获取示例 当我注册用户时 我想向他们添加角色 当我测试角色是否已分配时 它没有选择它
  • 卡片视图未显示

    我正在通过 android 中的回收器视图实现卡片视图 但我的卡片视图没有显示 我正在使用自定义适配器将数据填充到卡片视图 我已经尝试了所有方法 但卡片视图没有显示 MainActivity java public class MainAc
  • 如何从 pandas 中的字符串中提取前 8 个字符

    我在数据框中有一列 我正在尝试从字符串中提取 8 位数字 我该怎么做 Input Shipment ID 20180504 S 20000 20180514 S 20537 20180514 S 20541 20180514 S 20644
  • 限制拖放面板中的最大元素数

    我的网站上有一个可排序面板 jQuery UI 但需要将每列中的元素数量限制为最多 12 个 我尝试了一些方法 但似乎无法让它发挥作用 我需要看看 i 是否为 12 或更大 如果是 请不要更新 但我似乎做不到 有人有任何建议或可以推动我正确
  • 如何从脚本的纯色图像获取十六进制颜色代码?

    我正在编写一个脚本 将 Linux 机器上的背景更改为一组仅包含纯色的图像中的随机图像 我想做的是扩展此脚本以相应地主题某些应用程序 主要是终端应用程序 至少更改文本颜色 可能从深色背景切换到浅色背景等 我想知道我必须有哪些选项获取图像中颜
  • 谷歌天气 API 链接需要人工身份验证

    我使用开发了一个天气应用程序谷歌天气 http www google com ig api weather lincoln应用程序编程接口 但从今天起它停止工作了 当我尝试通过浏览器使用位置访问天气 API 时 它要求进行人工身份验证 当我
  • 当按钮大小改变时增加按钮字体大小

    我有一个 Qt 应用程序 其主窗口有五个按垂直顺序排列的按钮 它们都有相同的尺寸 我想做的就是当应用程序全屏显示时增加按钮标签的字体大小 我真的很感激一个不需要太多代码的解决方案 希望这是可以在 Qt Designer 中完成的事情 但我找