- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我想问一下当我将 QHBoxLayout 与 QMainWindow 和 QWidget 一起使用时发生的事情。我正在尝试通过连接 2 个小部件来更改窗口标题样式。这是发生了什么:QWidget下
这是为此的代码:标题栏.h
#ifndef MYTITLEBAR_H
#define MYTITLEBAR_H
#include <QMainWindow>
#include <QMouseEvent>
#include <QToolButton>
#include <QStyle>
#include <QLabel>
#include <QHBoxLayout>
#include <QPixmap>
class MyTitleBar : public QWidget
{
public:
MyTitleBar( QWidget* parent );
public slots:
void showSmall();
void showMaxRestore();
protected:
void mousePressEvent( QMouseEvent* me );
void mouseMoveEvent( QMouseEvent* me );
private:
QToolButton* minimize;
QToolButton* maximize;
QToolButton* close;
QToolButton* custom;
QPixmap restorePix, maxPix, closePix, minPix, customPix;
bool maxNormal;
QPoint startPos;
QPoint clickPos;
};
#endif // MYTITLEBAR_H
标题栏.cpp
#include "mytitlebar.h"
MyTitleBar::MyTitleBar( QWidget* parent )
{
this->setWindowFlags( Qt::FramelessWindowHint );
minimize = new QToolButton(this);
maximize = new QToolButton(this);
close = new QToolButton(this);
custom = new QToolButton(this);
closePix.load( "close.png" );
close->setIcon( closePix );
maxPix.load( "maximize.png" );
maximize->setIcon( maxPix );
minPix.load( "minimize.png" );
minimize->setIcon( minPix );
customPix.load( "custom_icon.png" );
custom->setIcon( customPix );
QLabel* label = new QLabel(this);
label->setText( "Custom Window" );
QHBoxLayout* HBox = new QHBoxLayout( this );
HBox->addWidget( custom );
HBox->addWidget( label );
HBox->addWidget( minimize );
HBox->addWidget( maximize );
HBox->addWidget( close );
}
void MyTitleBar::showSmall()
{
}
void MyTitleBar::showMaxRestore()
{
}
void MyTitleBar::mousePressEvent(QMouseEvent *me)
{
}
void MyTitleBar::mouseMoveEvent(QMouseEvent *me)
{
}
在 QMainWindow 下:
代码与 QWidget 完全相同,但我已将父级和继承更改为 QMainWindow。然后回到问题,为什么会发生这种情况以及如何解决这个问题?在主窗口中,它只是实例化类并将其移动到正确的位置,它看起来像一个窗口标题栏,并且与 QWidget 和 QMainWindow 相同。我需要使用 QMainWindow 作为父窗口,因为主窗口是 QMainWindow 的继承。
最佳答案
问题是 QMainWindow 已经有了布局,参见文档 here , 所以代码不会像 QWidget 那样工作,你需要使用 centralWidget ,将布局设置为 centralWidget
并将所有小部件添加到布局中。
关于c++ - QBoxLayout 与 QMainWindow 与 QWidget,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22887854/
https://stackoverflow.com/a/13661255/462608 QMainWindow comes with its own layout, you can't set tha
我使用 QMainWindow 作为我的主 QMainWindow 的 child。这样我就得到了另一个区域,我可以将其用于可停靠小部件 (QDockWidget)。 根据以下帖子,这没问题,它也非常
重点关注这部分代码: prect = self.parent.rect() # Show Window2),Window2 不相对于父窗口居中显示。 当我使用 prect1.center() 时,它
这个相当少的代码创建了一个带有三个右键单击选项的系统托盘项。一个是QDialog的实例,另一个是QMainWindow,还有Quit。它适用于一个系统托盘驱动的应用程序,它将有一些 qdialogs
我想将 QMainWindow 实例放在另一个 QWidget 中(例如另一个 QMainWindow 的 centralWidget)。 我想知道为什么它不起作用? QMainWindow 直接继承
我正在 OSX 下使用 Qt Creator (Qt5.10) 编写 GUI。我有一个用于主应用程序窗口的 QMainWindow。在这里面我有一个 QTab 小部件,其中我有整个小部件(我们称它为
嗯,主题。 我在桌面 Qt4 应用程序中使用停靠栏小部件,但我不喜欢停靠栏形式的布局。我希望右侧 停靠栏占据右上 角,默认情况下由顶部 停靠栏占据。 我用谷歌搜索(认真地!)我能用这个做什么,我找到了
我是 PySide 的新手。我遇到一个问题:当我从另一个 QmainWIndow(主 UI)触发 QAction 时,一个新的 QMainWindow 闪烁并消失了。我在这里发布示例代码来说明以上内容
我的问题: 我想自定义标题栏 的工作方式和查找我的应用程序的方式。 我的想法: 我在 Qt Designer 中创建了一个新的 QWidget 表单,并向其中添加了一个 QWidget。我在构造函数中
我想在屏幕中间显示我的项目主窗口。当我调用“self.show()”时,窗口会显示在屏幕中间。 最佳答案 我知道你已经解决了,但我为那些有同样问题的人做这个回答。我发布它主要是因为你要求 pyQt 而
为什么 QMainWindow 的析构函数不是虚拟的?如果我从 QMainWindow 继承了一个类 MainWindow 并在它上面有一些指针属性,我就不能使用 MainWindow 的析构函数删除
我正在尝试重建一个屏幕记录PyQt应用程序,ScreenToGIF对我来说是一个非常好的演示,它创建了一个只有边框并在“Central Widgets”中记录内容的界面,如下所示: 主要功能为: 边框
我对 Qt 比较陌生。 我正在编写一个应用程序,我在其中生成伪随机数和 key ,我想用 QMainWindow 中捕获的随机鼠标移动来为生成器播种。此外,我希望能够在用户按下 QButton 时关闭
如何将第一个参数传递给 QMainWindow? 我希望能够将多个不同的参数传递给 QMainWindow。我的问题是,即使在我修改了构造函数以允许传递第二个/第三个/第四个参数之后,我仍然找不到实例
我尝试创建类似窗口池的东西。您可以在程序中的任何地方使用这些窗口来显示图形和绘图等。小部件运行良好,但目前的主要问题是创建池的尝试受挫。一个非 QObject-Object 应该表示一个 QMainW
我制作了一个快速测试程序,执行时似乎没有显示任何内容。这是我的代码: z_lock.h #ifndef Z_LOCK_H #define Z_LOCK_H #include class z_lock
是否可以制作一个未修饰的 QMainWindow,如果可以,我该怎么做? 最佳答案 是的, mainWin->setWindowFlags(Qt::CustomizeWindowHint); 参见 Q
我正在尝试编译 cutecash(一个 qt 项目)并且遇到了一些麻烦。我只是在做标准: cmake . make 但是,我遇到无法找到 QMainWindow 和 QString 等错误。这是错误:
一个最小的例子: class MainWindow(QtGui.QMainWindow): def __init__(self, parent = None): QtGui.QMain
我在 PyQT5 中遇到错误的布局。我究竟做错了什么?是否有一些预定义的小字段大小或类似的?我将主窗口创建为 QMainWindow,并在其中创建一个小部件作为中央小部件。它是这样的: class M
我是一名优秀的程序员,十分优秀!