- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 pyqt 新手。我想摆脱 qmenu 影子。但是当我添加framelesswindowhint时,菜单无法正常工作。
实现framelesswindowhint之前的代码:
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.setMinimumSize(800, 400)
self.setStyleSheet(
"""
background-color:white;
"""
)
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.mainlayout = QtWidgets.QVBoxLayout()
button = QtWidgets.QPushButton("my button")
filemenu = QtWidgets.QMenu(button)
#filemenu.setWindowFlags(QtCore.Qt.FramelessWindowHint)
filemenu.setObjectName("filemenu")
openaction = QtWidgets.QAction("open item", self)
filemenu.addAction(openaction)
button.setMenu(filemenu)
self.mainlayout.addWidget(button)
self.setLayout(self.mainlayout)
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
# app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
mw = MainWindow()
# mw.setWindowOpacity(0.95)
mw.show()
sys.exit(app.exec_())
最佳答案
Qt.NoDropShadowWindowHint
在支持平台上禁用窗口阴影。
import sys
from PyQt5 import QtWidgets, QtCore, QtGui
class MainWindow(QtWidgets.QWidget):
def __init__(self):
super(MainWindow, self).__init__()
self.setWindowFlags(QtCore.Qt.FramelessWindowHint)
self.label = QtWidgets.QLabel(self, alignment=QtCore.Qt.AlignCenter)
button = QtWidgets.QPushButton("my button")
filemenu = QtWidgets.QMenu(button)
filemenu.triggered.connect(self.selected)
#filemenu.setWindowFlags(QtCore.Qt.FramelessWindowHint) # ---
filemenu.setWindowFlags(filemenu.windowFlags() # +++
| QtCore.Qt.NoDropShadowWindowHint) # +++
openaction = QtWidgets.QAction("open item", self)
filemenu.addAction(openaction)
filemenu.addAction("Do something...")
button.setMenu(filemenu)
self.mainlayout = QtWidgets.QVBoxLayout()
self.mainlayout.addStretch()
self.mainlayout.addWidget(self.label)
self.mainlayout.addWidget(button)
self.mainlayout.addStretch()
self.setLayout(self.mainlayout)
def selected(self, q):
self.label.setText(q.text() + ' selected')
CSS = """
QWidget {
background-color: white;
}
QMenu {
background-color: #ABABAB; /* sets background of the menu */
border: 1px solid black;
margin: 0;
}
QMenu::item {
background-color: red;
}
QMenu::item:selected {
background-color: #654321;
}
QMenu::separator {
height: 12px;
background: lightblue;
margin-left: 10px;
margin-right: 5px;
}
QLabel {
color: red;
font: 27px;
}
QPushButton {
background-color: yellow;
}
"""
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
# app.setStyleSheet(qdarkstyle.load_stylesheet_pyqt5())
app.setStyleSheet(CSS)
mw = MainWindow()
# mw.setWindowOpacity(0.95)
mw.setMinimumSize(800, 400)
mw.show()
sys.exit(app.exec_())
关于python - FramelessWindowhint 导致 qmenu 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54734810/
我希望我的 PyQt5 程序是无框架的并且始终位于屏幕顶部。当我使用 WindowStayOnTopHint 时,它工作正常,但是当我将它与 FramelessWindowHint 一起使用时,它会变
当使用带有 setSizeConstraint 的 Qt::FramelessWindowHint 时,我的小部件不再接收关闭事件,这是一个错误吗?最小测试示例: 亲 QT += core
我是 pyqt 新手。我想摆脱 qmenu 影子。但是当我添加framelesswindowhint时,菜单无法正常工作。 实现framelesswindowhint之前的代码: import sys
我正在编写一个带有自定义窗口外壳的应用程序。外壳具有圆角和透明度。这是我如何执行此操作的示例代码: MyWindow::MyWindow (void) : QMainWindow (NULL, Qt:
我是 Qt 的新手。我想开发一个无框架的应用程序。但是 QML 中的 AreaDrop 不适用于 Windows 中的无框架应用程序。我的代码: main.qml import QtQuick 2
我是一名优秀的程序员,十分优秀!