demo
code
import sys
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.backends.backend_qt5agg import figurecanvasqtagg as fc
class mywidget(qwidget):
def __init__(self):
super(mywidget, self).__init__()
self.init_ui()
def init_ui(self):
self.resize(1000, 500)
# 解決無法顯示中文
plt.rcparams['font.sans-serif'] = ['simhei']
# 解決無法顯示負號
plt.rcparams['axes.unicode_minus'] = false
# 按鈕
self.one_btn = qpushbutton('畫一條線')
self.more_btn = qpushbutton('重複畫線')
self.reset_btn = qpushbutton('重置')
# 按鈕繫結方法
self.one_btn.clicked.connect(self.draw_cmd)
self.more_btn.clicked.connect(self.draw_cmd)
self.reset_btn.clicked.connect(self.reset_cmd)
# 設定畫布部分
self.fig = plt.figure(figsize=(10, 4), dpi=80)
self.canvas = fc(self.fig)
# 新增第乙個圖
self.ax = self.fig.add_subplot('121')
self.ax.set_title('畫一條線')
# 新增第二個圖
self.ax1 = self.fig.add_subplot('122')
self.ax1.set_title('重複畫線')
# 設定布局,將元件新增到布局中
self.layout = qvboxlayout()
self.layout.addwidget(self.canvas)
self.layout.addwidget(self.one_btn)
self.layout.addwidget(self.more_btn)
self.layout.addwidget(self.reset_btn)
self.setlayout(self.layout)
def draw_cmd(self):
try:
# 如果是點選畫一條線的按鈕,就先清除內容
if self.sender() == self.one_btn:
ax = self.ax
ax.cla()
self.ax.set_title('畫一條線')
# 如果是點選重複畫圖的按鈕,就不清除原先的內容
elif self.sender() == self.more_btn:
ax = self.ax1
# 繪圖部分
x = [i + 1 for i in range(5)] # x軸
y = np.random.randint(0, 10, 5) # y軸
ax.plot(x, y) # 折線圖
self.canvas.draw() # 繪製
except exception as e:
print(e)
def reset_cmd(self):
try:
# 清除內容
self.ax.cla()
self.ax1.cla()
# 重新設定標題
self.ax.set_title('畫一條線')
self.ax1.set_title('重複畫線')
# 重新繪製
self.canvas.draw()
except exception as e:
print(e)
def start():
m = mywidget()
m.show()
if __name__ == '__main__':
start()
pyqt5切換python版本 pyqt5介面切換
主要的思路就是建立兩個frame 如果有兩個以上同理 使用setvisible 函式顯示或者隱藏frame 引數是bool值 import sys from pyqt5.qtwidgets import from pyqt5.qtcore import from pyqt5.qtgui import...
學習PyQt5(三) PyQt5的訊號和槽
我 如圖所示,我們建立乙個按鈕及乙個瀏覽器。什麼是訊號?比如按鈕的單擊,雙擊,按下,釋放等,都可以認為是乙個訊號 什麼是槽?對應的訊號,做出什麼應對,這要乙個應對在乙個函式中,我們可以認為這就是乙個訊號 槽關係 在qt designer中點選工具欄 注意不是工具盒 中的這個圖示 點選這個圖示後,就進...
PyQt5和SystemHotKey構造全域性熱鍵
測試了3個熱鍵庫,最終systemhotkey庫使用最簡單,安裝方法 簡易的demo,搬運官方 from system hotkey import systemhotkey hk systemhotkey hk.register control shift h callback lambda x p...