PDF
UI1PyQt5ContentsQt .................................................................................... 1UI ................................................................................................. 1 ............................................................................................... 3 ............................................................................................... 4Qt退void main() { while(true) { command = fetch_user_input_event() if(command == quit): exit(); else keep_rendering_ui }}def main(): app = QApplication(sys.argv) window = MainWindow() window.show() # app.exec_() # 退if __name__ == '__main__': main()UI UI2class MainWindow(QMainWindow): def __init__(self, *args, **kwargs): super(MainWindow, self).__init__(*args, **kwargs) self.setWindowTitle('Simple image editor') self.setFixedSize(640, 480) # 使# QtC++# selfself.imageContainer = QLabel(self)self.imageContainer.setAlignment(Qt.AlignCenter)# qtcssself.imageContainer.setStyleSheet('background-image:url(background.jpg);') 3# self.setCentralWidget(self.imageContainer)self.menuBarmenu = self.menuBar()# 使macmenu.setNativeMenuBar(False)aboutMenu = menu.addMenu('&')aboutMenu.addAction(aboutAction) addWidget# self.toolbar = self.addToolBar('Operations')# zoomInAction = QAction(QIcon('zengjia.svg'), '', self)self.toolbar.addAction(zoomInAction)# slider = QSlider(Qt.Horizontal)slider.setFixedWidth(200)self.toolbar.addWidget(slider)aboutAction = QAction('&', self)aboutAction.setShortcut('Ctrl+A')# triggered aboutAction.triggered.connect(self.onAbout)slider = QSlider(Qt.Horizontal)slider.setFixedWidth(200)slider.setValue(100)slider.valueChanged.connect(self.onChangeBrightness)# def onChangeBrightness(self, value): # value0-100 pass 4 scaledImage = rotatedImage.scaled(self.imageSize.width(), self.imageSize.height(), Qt.KeepAspectRatio, Qt.SmoothTransformation)self.imageContainer.setPixmap(scaledImage)# self.imageSize = QSize(300, 200)def onZoomOut(self): # 0.51.5 self.imageSize *= 0.5 self.refreshImage()transform = QTransform()transform.rotate(self.rotateAngle)rotatedImage = self.image.transformed(transform)# QPixmapQImage便image = self.rawImage.toImage()for i in range(0, image.width()): for j in range(0, image.height()): # (i, j) color = QColor(image.pixelColor(i, j)) # HSL (h, s, l, a) = color.getHsl() # rgb newBrightless = l * (value/100.0) color.setHsl(h, s, newBrightless, a) image.setPixel(i, j, color.rgb())self.image = QPixmap.fromImage(image)

HTML view coming soon.

Download PDF for the full formatted version.