相关疑难解决方法(0)

你如何调试Qt布局问题

我有一个复杂的对话框,它充满了空白,我无法收缩它.在Designer中,它有许多组件,然后动态隐藏,还有一些动态添加.我添加了大小策略,大小提示和最小大小的转储,但仍然无法弄清楚为什么Qt不会让我拖得更小.

必须有一些工具或技术来解决这个问题.

请分享.

layout qt

13
推荐指数
1
解决办法
2243
查看次数

在应用程序窗口的顶部绘制叠加层

我希望能够在我的应用程序窗口上绘制,以便我可以使用一些额外的诊断信息来注释所有小部件,类似于Firefox中的CSS开发人员工具(例如,添加小部件类,样式,突出显示边框等).

我可以遍历小部件树并提取相关信息,但问题是如何使用此信息覆盖所有应用程序窗口?

一种方法是覆盖我QMainWindow的绘画事件,但必须为所有顶级窗口完成.是否有替代方法可以在QDesktopWidget例如上绘画?或者每种QWidget油漆方法的任何钩子?任何涉及子类化的东西QWidget都不适用于标准小部件.

这是我之前提出的问题:

为Mandrill欢呼

编辑:感谢德米特里,我现在有一个非常简单的方法,可以轻松扩展:

class DiagnosticStyle : public QWindowsVistaStyle
{
Q_OBJECT

public: 
    typedef QWindowsVistaStyle BaseStyle;
    void drawControl(ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const;
};


void DiagnosticStyle::drawControl(ControlElement element, const QStyleOption* option, QPainter* painter, const QWidget* widget) const
{
    BaseStyle::drawControl(element, option, painter, widget);
    if (widget && painter) {
        // draw a border around the widget
        painter->setPen(QColor("red"));
        painter->drawRect(widget->rect());

        // show the classname of the widget
        QBrush translucentBrush(QColor(255,246,240, 100)); …
Run Code Online (Sandbox Code Playgroud)

qt paint

12
推荐指数
1
解决办法
5757
查看次数

标签 统计

qt ×2

layout ×1

paint ×1