В моем приведенном ниже коде в настоящее время открывается пустое поле 500x500 QMainWindow.Как использовать QPainter в QWidget в PyQt4
Я просто пытаюсь нарисовать круг в QWidget, используя QPainter.
Вот мой код:
from PyQt4 import QtCore, QtGui, Qt
from PyQt4.QtGui import QApplication, QMainWindow
import sys
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.resize(500, 500)
self.centralwidget = QtGui.QWidget(MainWindow)
self.horizontalLayout = QtGui.QHBoxLayout(self.centralwidget)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtGui.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 500, 22))
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtGui.QStatusBar(MainWindow)
MainWindow.setStatusBar(self.statusbar)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
class MyMainScreen(QMainWindow):
def __init__(self, parent=None):
QtGui.QMainWindow.__init__(self, parent)
self.ui = Ui_MainWindow() # This is from a python export from QtDesigner
self.ui.setupUi(self)
self.paintCircle()
def paintCircle(self):
self.painter = QtGui.QPainter(self)
self.painter.begin(self)
self.painter.setPen(Qt.QPen(Qt.QColor.black))
# painter.end()
self.painter.drawArc(QtCore.QRectF(250, 250, 10, 10), 0, 5760)
if __name__ == "__main__":
app = QApplication(sys.argv)
mainscreen = MyMainScreen()
mainscreen.show()
app.exec_()
Я получаю следующие ошибки:
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::begin: Paint device returned engine == 0, type: 1
QPainter::setPen: Painter not active
Как я могу запустить его при двойном щелчке? –
двойной щелчок, где ?? – eyllanesc
В поле, в основном, я думал, что могу сказать, если событие == QtCore.QEvent.MouseButtonDblClick, затем drawArc, но событие ВСЕГДА QPaintEvent.paint каждый раз, очевидно, –