UI文件转换为python代码(UI界面代码):
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again. Do not edit this file unless you know what you are doing.
from PyQt5 import QtCore, QtGui, QtWidgets
import pyqtgraph as pg
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(937, 751)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.gridLayout = QtWidgets.QGridLayout(self.centralwidget)
self.gridLayout.setObjectName("gridLayout")
self.graphicsView = pg.GraphicsView(self.centralwidget)
self.graphicsView.setObjectName("graphicsView")
self.gridLayout.addWidget(self.graphicsView, 0, 0, 1, 1)
self.tableWidget = QtWidgets.QTableWidget(self.centralwidget)
self.tableWidget.setGeometry(QtCore.QRect(260, 130, 256, 192))
self.tableWidget.setObjectName("tableWidget")
self.tableWidget.setColumnCount(0)
self.tableWidget.setRowCount(0)
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 937, 26))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
实现代码:
import sys
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore, QtWidgets
from PyQt5.QtCore import Qt
from PyQt5.QtWidgets import QMainWindow, QApplication
from untitled import Ui_MainWindow
class xx(QMainWindow,Ui_MainWindow):
def __init__(self):
super(xx,self).__init__()
self.setupUi(self)
self.graphicsView.setStyleSheet('QGraphicsView {background-color:blue;}')
self.tableWidget.setStyleSheet('QTableWidget {background-color:red;}')
self.tableWidget.move(500,500)
# self.tableWidget.setWindowFlags(Qt.WindowStaysOnBottomHint)
self.Widget1 = QtWidgets.QWidget(self.centralwidget)
self.Widget1.setGeometry(QtCore.QRect(260, 130, 256, 192))
self.Widget1.setObjectName("Widget1")
self.Widget1.setStyleSheet('QWidget#Widget1 {background-color:yellow;}')
# self.graphicsView.raise_() # 置顶
# self.Widget1.raise_()
# self.tableWidget.raise_()
vb = pg.ViewBox(invertY=True)
vb.setFixedHeight(800)
vb.setFixedWidth(800)
# p1 = pg.PlotDataItem()
# vb.addItem(p1)
# TODO PlotItem 最小刻度,背景颜色,边框,位置未解决 ***大小,题目,轴标签,轴隐藏/显示,界限线
plot = pg.PlotItem(title='111', labels={'left': 'y', 'bottom': 'x'})
# plot.setXRange(0,6)
# plot.setYRange(0,8)
plot.setDefaultPadding(padding=0.5)
plot.setLabel(axis='left', text='<html style="font-family:arial;color:red;font-size:10px;">Y</html>',
units='v') # 设置坐标轴的标签,text:允许使用*HTML*
plot.hideButtons() # 隐藏左下角A按钮
# plot.hideAxis('left') # 隐藏坐标轴(‘left’, ‘bottom’, ‘right’, or ‘top’)
plot.showButtons() # 显示左下角A按钮
plot.addLine(x=1, pen='r') # 绘制一条直线
plot.addLine(y=1, pen='b') # 绘制一条直线
plot.addLine(y=2, pen='b') # 绘制一条直线
plot.showGrid(x=True, y=True, alpha=0) # 显示网格线(X/Y),alpha:网格线的不透明度:(0.0-1.0)
plot.showAxes(selection=(True, False, False, True), showValues=True) # size:(width, height)
vb.addItem(plot)
self.graphicsView.addItem(vb)
# l.addItem(vb, 0, 1)
# self.graphicsView.centralWidget.setLayout(l)
if __name__ == '__main__':
app = QApplication(sys.argv)
x = xx()
x.show()
sys.exit(app.exec())
界面中插入一个widget控件:
self.Widget1 = QtWidgets.QWidget(self.centralwidget)
self.Widget1.setGeometry(QtCore.QRect(260, 130, 256, 192))
self.Widget1.setObjectName("Widget1")
self.Widget1.setStyleSheet('QWidget#Widget1 {background-color:yellow;}')
通过将self.Widget1置顶进行覆盖viewbox:
self.Widget1.raise_()
实现效果:
self.Widget1置顶覆盖在viewbox之上。
多窗口置顶/置地:
self.tableWidget.setWindowFlags(Qt.WindowStaysOnBottomHint) #置地
self.tableWidget.setWindowFlags(Qt.WindowStaysOnTopHint) # 置顶