qtdesigner的QGraphicsScene怎么用

QGraphicsScene不会用怎么办?其实我不太明白原理,但是能用

使用qtdesigner设计ui,

在cmd用下面命令从.ui转成.py文件

pyuic5 -o ui.py ui.ui 

生成的.py文件部分展示,定位到有关QGraphicsScene的地方

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.graphicsView = QtWidgets.QGraphicsView(self.centralwidget)
        self.graphicsView.setGeometry(QtCore.QRect(210, 70, 351, 231))
        self.graphicsView.setObjectName("graphicsView")

代码里QGraphicsScene不会用怎么办,在下面代码的下面

self.graphicsView.setObjectName("graphicsView")

添加这四行代码

self.scene = QGraphicsScene()
self.pixmap_item = QGraphicsPixmapItem()
self.scene.addItem(self.pixmap_item)
self.graphicsView.setScene(self.scene)

之后在编写打开图片的函数时,这样写

def open(self):
    self.file, _ = QFileDialog.getOpenFileName(None, "打开文件")
        if self.file is not "":
            pixmap = QPixmap(self.file).scaled(self.graphicsView.size(),Qt.KeepAspectRatio)
            self.pixmap_item.setPixmap(pixmap)

### 如何在Qt Designer中添加和显示图片 #### 使用Matplotlib图表嵌入Qt界面 为了实现在由Qt Designer设计的界面上显示Matplotlib绘图,需编写一个Python类来继承自Qt Designer生成的UI类。此过程中涉及的关键步骤之一是在图形视图组件`QGraphicsView`内创建并设置`QGraphicsScene`对象。 ```python from PyQt5.QtWidgets import QApplication, QMainWindow import sys from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.figure import Figure class MyMainWindow(QMainWindow): def __init__(self): super().__init__() self.init_ui() def init_ui(self): # 创建Figure实例用于承载图像数据 fig = Figure() ax = fig.add_subplot(111) # 绘制简单折线图作为示例 ax.plot([1, 2, 3], [4, 5, 6]) canvas = FigureCanvas(fig) scene = QGraphicsScene() # 实例化场景管理器 view = self.findChild(QGraphicsView, "graphicsView") # 假设在.ui文件里定义了一个名为graphicsView的对象 if view is not None: scene.addWidget(canvas) # 将matplotlib画布加入到scene中 view.setScene(scene) if __name__ == '__main__': app = QApplication(sys.argv) window = MyMainWindow() window.show() sys.exit(app.exec_()) ``` 上述代码展示了如何通过PyQt框架将Matplotlib图表集成至基于Qt Designer构建的应用程序窗口之中[^1]。 #### 图片资源加载问题解决方法 当遇到从Qt Designer添加图标却未能正常展示的情况时,可能是由于相对路径配置错误或是未正确处理.qrc资源文件所引起的。对于这类情形的一个常见解决方案是采用绝对路径指定图片位置或将所需素材打包成qrc格式以便于应用程序访问这些静态资源[^2]。 #### 工具栏按钮样式调整 如果发现工具条上的按钮仅呈现文本而缺少预期中的图标,则应核查该控件的具体属性设定。具体来说,确保其外观模式被恰当设置为允许同时展现图标与标签文字或单独渲染图标的形式(即ToolButtonIconOnly选项)。这一步骤有助于排除因视觉表现参数不当而导致的图标缺失现象[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值