我有一个浮动工具窗口.它在Windows上工作正常,但我无法摆脱Mac OS X上的最大化按钮.我尝试取消
Qt::WindowMaximizeButtonHint设置并将窗口设置为固定大小.似乎没什么用.
MyWidget::MyWidget( QWidget* parent )
:QWidget( parent, Qt::Tool | Qt::CustomizeWindowHint )
{
setupUi( this );
setFixedSize( sizeHint() ); // doesn't remove maximise button
setWindowFlags( windowFlags() & ~Qt::WindowMaximizeButtonHint ); // doesn't remove maximise button
}
Run Code Online (Sandbox Code Playgroud)
我不想使用无框窗口.有任何想法吗?我使用的是Qt 4.4.
Kam*_*mek 10
启动Qt windowflags示例应用程序.选择Tool单选按钮然后检查:
这是我在Mac OS X上找到的唯一方法来实现你想要的但是你会松开最小化按钮.别无他法.那是Mac OS X Window Manager的限制.
总而言之,标题栏中只有五组按钮:
setWindowFlags(Qt::Tool)setWindowFlags(Qt::Tool
| Qt::WindowTitleHint
| Qt::WindowMaximizeButtonHint
| Qt::WindowCloseButtonHint
| Qt::CustomizeWindowHint)setWindowFlags(Qt::Tool
| Qt::WindowTitleHint
| Qt::WindowMaximizeButtonHint
| Qt::CustomizeWindowHint)setWindowFlags(Qt::Tool | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint)setWindowFlags(Qt::Tool | Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::CustomizeWindowHint)来自诺基亚的 Richard Gustavsen 的这段代码适用于 Qt 4.4:
class MyWidget : public QWidget
{
public:
MyWidget::MyWidget( QWidget* parent ) : QWidget(parent, Qt::Tool)
{
}
void setVisible(bool visible)
{
QWidget::setVisible(visible);
ChangeWindowAttributes(qt_mac_window_for(this), kWindowNoAttributes, kWindowFullZoomAttribute);
}
};
Run Code Online (Sandbox Code Playgroud)
感谢理查德和诺基亚!