经过大量谷歌搜索后,我知道我需要使用self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
生成无框窗口,以及坐标(0,0)的一些变体,将其放置在屏幕的左上角。
我遇到的问题是,无论我尝试使用此代码,它都会产生错误,即使在我稀疏的现有代码中也是如此:
from PyQt4 import QtCore, QtGui
from ui.mainwindow import MainWindow
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
ui = MainWindow()
ui.show()
sys.exit(app.exec_())
经过大量谷歌搜索后,我无法为其他人提供适合我的解决方案。 在屏幕左上角显示我的窗口没有边框的神奇语法是什么?
答案 0 :(得分:5)
事实证明我有很多东西可以学习Python和层次继承/什么属于什么,我正在寻找的代码是:
from PyQt4 import QtCore, QtGui
from ui.mainwindow import MainWindow
if __name__ == "__main__":
import sys
app = QtGui.QApplication(sys.argv)
ui = MainWindow()
ui.setWindowFlags(QtCore.Qt.FramelessWindowHint)
ui.move(0, 0)
ui.show()
sys.exit(app.exec_())
尤里卡时刻意识到MainWindow在变量ui下以速记伪装。为了别人的利益,就像我一样。
答案 1 :(得分:1)
基本上,如果您只是设置了Frameless标志,那么您仍然需要保留一大堆应用于QWidget
或QMainWindow
s的默认标志。
如果您还包含将清除所有以前标记的CustomizeWindowHint
,然后在您要使用的其他标记中添加bitwise or
:请参阅|
运算符。
http://doc.qt.io/qt-5/qt.html#WindowType-enum
http://doc.qt.io/qt-5/qwidget.html#setAttribute
http://doc.qt.io/qt-5/qt.html#WidgetAttribute-enum
http://doc.qt.io/qt-5/qwidget.html#pos-prop
http://doc.qt.io/qt-5/application-windows.html#window-geometry
我会在几分钟内发布一个代码段。
更新:
#include "mainwindow.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::Tool);
// w.setAttribute(Qt::WA_TranslucentBackground);
w.move(0,0);
w.show();
return a.exec();
}
希望有所帮助。