- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在尝试在 QDockWidget 的 KeyPressedEvent 中添加一些逻辑。它在没有 QDockWidget 的情况下工作,即在主窗口上工作,但在 QDockWidget 上不起作用。
这是我尝试过的:
from PyQt5 import QtCore
from PyQt5.QtWidgets import *
from qgis.core import QgsProject
from .progress_bar import Ui_MainWindow_Progress
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
def _fromUtf8(s):
return s
try:
_encoding = QApplication.UnicodeUTF8
def _translate(context, text, disambig):
return QApplication.translate(context, text, disambig, _encoding)
except AttributeError:
def _translate(context, text, disambig):
return QApplication.translate(context, text, disambig)
class Ui_MainWindow(QMainWindow):
def __init__(self, iface):
super().__init__()
self.iface = iface
def setupUi(self, MainWindow):
MainWindow.setObjectName(_fromUtf8("MainWindow"))
MainWindow.resize(356, 750)
self.pushButton_exit = QPushButton(MainWindow)
self.pushButton_exit.setGeometry(QtCore.QRect(290, 0, 50, 23))
self.pushButton_exit.setObjectName(_fromUtf8("pushButton_exit"))
self.pushButton_exit.setStyleSheet("background-color: red")
self.label_4 = QLabel(MainWindow)
self.label_4.setGeometry(QtCore.QRect(20, 300, 81, 20))
self.label_4.setObjectName(_fromUtf8("label_4"))
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
self.dock_widget = QDockWidget("My Plugin", self.iface.mainWindow())
self.dock_widget.setWidget(MainWindow)
self.dock_widget.setFixedWidth(356)
self.dock_widget.setFixedHeight(750)
self.iface.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.dock_widget)
self.dock_widget.setFeatures(QDockWidget.DockWidgetFloatable |
QDockWidget.DockWidgetMovable)
self.dock_widget.keyPressEvent = self.keyPressed
def keyPressed(self, event):
if event.key() == QtCore.Qt.Key_Escape:
print("Escape pressed")
代码运行良好,但未调用 keyPressed 方法。QDockWidget的KeyPressedEvent如何处理?
最佳答案
keyPressEvent()
: is a predefined function in PyQt framework used to define the functionalities of the key press event generated. Note that, you can’t change its function name, you can define its argument content and function body as per your requirement.
event.key() == QtCore.Qt.Key_Escape
is being used under the keyPresssEvent() function. Here, key_Escape is used to mention that the key we are going to generate event is the Escape key.
尝试:
def keyPressEvent(self, event):
if event.key() == QtCore.Qt.Key_Escape:
print("Escape pressed")
关于python - 如何在pyqt(QGIS)中捕捉QDockWidget的KeyPressedEvent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55452097/
H 在那里。 谁能告诉我如何设置标签化的 QDockWidget 弹出到前面(作为事件停靠栏)? 在下图中,“full”选项卡被选中并且它的内容可见,但我想将“mouth”选项卡设置为所选选项卡并使其
我正在尝试创建一个专门的 QDockWidget,其中包含我可以在其他 Qt5 UI 中使用的一些内容。为此,我创建了一个带有 UI 表单的 QDockWidget 子类,名为 SpecialDock
我想知道是否有人知道是否可以拖动 QDockWidget从一个窗口到另一个窗口。 我正在开发一个有很多窗口的应用程序。每个窗口都有特定的用途。我想使用 QDockWidget 因为在主窗口中停靠小部件
我是 Qt 的新手,我正在尝试创建一个停靠在窗口右侧的 DockWidget。我为停靠栏设置了最大和最小宽度(正如您将在下面的代码中看到的那样)。如果使用 Qt::LeftDockWidgetArea
我有一个构建小部件的类,我可以将其停靠到我的主应用程序中。该类继承QDockWidget。如果愿意,这允许我停靠小部件。但是,我希望默认情况下停靠此小部件,而不是显示为单独的 float 窗口。 为了
我可以按如下方式添加 QDockWidgets: QDW1 QDW2; QDW3 QDW4; 使用代码 QDockWidget *dwidget = new QDockWidget(tr("QDW1"
我有一个 QDockWidget 类和一个 QMainWindow: // docker.hpp class Docker : public QDockWidget { Q_OBJECT pu
现在我的应用程序左侧有四个自定义的QDockWidgets。当您启动应用程序时,每一个都是可见的,但由于每一个的可见性,它们都非常小。 我希望三个 QDockWidgets 嵌套在一个主要的后面,以给
有没有一种简单的方法可以删除 QDockWidget 的调整大小句柄?我的停靠小部件无法调整大小(大小策略是固定的),因此将句柄放在那里只是多余的。 最佳答案 这个错误与 Qt 本身一样古老,我在这个
我有一个以 QDockWidget 作为主要小部件的 QTDesigner 对话框。当我将它停靠到主窗口并显示对话框时,它会自动自动隐藏,但允许我使用鼠标显示/隐藏它。我想默认保持可见。如果我使用鼠标
我有一个应用程序,需要在运行时根据用户输入以编程方式将固定大小的子窗口小部件添加到停靠窗口小部件。我想将这些小部件添加到 Qt::RightDockArea 上的停靠栏,从上到下直到空间用完,然后创建
我想彻底删除QDockWidget的标题栏。除了样式表,还有什么方法可以做到这一点吗? 最佳答案 dockWidget->setTitleBarWidget(new QWidget()); 关于c++
我正在制作一个小应用程序,用于使用 Qt 和 C++ 对图像应用各种滤镜。 我的问题是,是否可以在 QDockWidget 上添加多个 widget ?因为我想添加按钮以重新应用停靠栏上的最后 5 个
我想创建一个包含多个 QDockWidgets 的小部件,目的是将其放入 QMainWindow 中。问题是,如果我使用 layout->addWidget(dockWidget); 将 QDockW
当我将多个 QDockWidget 分组在同一位置时,它们的选项卡位于底部。有没有办法将它们放在顶部? 如果我可以用选项卡本身替换标题栏,那就更好了。 Eclipse IDE 具有非常相似的行为,如以
如何设置 QDockWidget 的初始宽度? 我已经实现了 sizeHint 功能,但接下来呢? 最佳答案 QDockWidget 的文档说: A QDockWidget acts as a wra
我正在使用 QDockWidgets 并将其中两个放在我的应用程序的左侧,以便可以使用选项卡在它们之间进行选择。然而,Qt 的默认行为看起来很糟糕而且不直观。它不能拖动选项卡来移动小部件,而是在必须拖
我在我的主窗口中创建了一个没有 centralwidget 的应用程序,并显示为最大化: setCentralWidget(0); setWindowState(Qt::WindowMaximized
有没有办法在样式表中更改 QDockWidget(Qt 4.8)的悬停/按下图标?我正在使用这种样式来更改默认状态的按钮图像: QDockWidget{ font-weight: bold;
我有一个停靠小部件,现在我想添加一个“窗口”菜单来显示/隐藏小部件。很容易做到 showPropWinAct = new QAction(tr("&Properties"), this); showP
我是一名优秀的程序员,十分优秀!