def kline(self, num): dr = Figure_Canvas() #实例化一个FigureCanvas dr.test(num) # 画图 graphicscene = QtWidgets.QGraphicsScene( ) # 第三步,创建一个QGraphicsScene,因为加载的图形(FigureCanvas)不能直接放到graphicview控件中,必须先放到graphicScene,然后再把graphicscene放到graphicview中 graphicscene.addWidget( dr) # 第四步,把图形放到QGraphicsScene中,注意:图形是作为一个QWidget放到QGraphicsScene中的 self.graphicview.setScene(graphicscene) self.graphicview.show() # 最后,调用show方法呈现图形!Voila!! self.setCentralWidget(self.graphicview) self.graphicview.resize(1100, 500)
def kline(self,num,a,b,tc): self.graphicview = QtWidgets.QGraphicsView() # 第一步,創建一个QGraphicsView self.graphicview.setObjectName("graphicview") dr = Figure_Canvas() #實例化一个FigureCanvas dr.test(num,a,b,tc) # 畫圖 graphicscene = QtWidgets.QGraphicsScene() # 第三步,创建一个QGraphicsScene,因为加载的图形(FigureCanvas)不能直接放到graphicview控件中,必须先放到graphicScene,然后再把graphicscene放到graphicview中 graphicscene.addWidget(dr) # 第四步,把圖形放到QGraphicsScene中,注意:图形是作为一个QWidget放到QGraphicsScene中的 self.graphicview.setScene(graphicscene) self.graphicview.show() # 最後,調用show方法呈现图形!Voila!! self.graphicview.resize(1100,500)
def __init__(self, parent=None): super(MainWindow, self).__init__(parent) self.graphicview = QtWidgets.QGraphicsView() # 第一步,创建一个QGraphicsView self.graphicview.setObjectName("graphicview") dr = Figure_Canvas() #实例化一个FigureCanvas #dr.test(10) # 画图 graphicscene = QtWidgets.QGraphicsScene( ) # 第三步,创建一个QGraphicsScene,因为加载的图形(FigureCanvas)不能直接放到graphicview控件中,必须先放到graphicScene,然后再把graphicscene放到graphicview中 graphicscene.addWidget( dr) # 第四步,把图形放到QGraphicsScene中,注意:图形是作为一个QWidget放到QGraphicsScene中的 self.graphicview.setScene( graphicscene) # 第五步,把QGraphicsScene放入QGraphicsView self.graphicview.show() # 最后,调用show方法呈现图形!Voila!! self.setCentralWidget(self.graphicview) self.graphicview.resize(1100, 500) self.setupUi(self) self.initUI() """
def setupUi(self, MainWindow): self.graphicview = QtWidgets.QGraphicsView() # 第一步,创建一个QGraphicsView self.graphicview.setObjectName("graphicview") dr = Figure_Canvas() #实例化一个FigureCanvas #dr.test(10) # 画图 graphicscene = QtWidgets.QGraphicsScene( ) # 第三步,创建一个QGraphicsScene,因为加载的图形(FigureCanvas)不能直接放到graphicview控件中,必须先放到graphicScene,然后再把graphicscene放到graphicview中 graphicscene.addWidget( dr) # 第四步,把图形放到QGraphicsScene中,注意:图形是作为一个QWidget放到QGraphicsScene中的 self.graphicview.setScene( graphicscene) # 第五步,把QGraphicsScene放入QGraphicsView self.graphicview.show() # 最后,调用show方法呈现图形!Voila!! self.setCentralWidget(self.graphicview) self.graphicview.resize(1100, 500) MainWindow.setObjectName("MainWindow") MainWindow.resize(1024, 768) self.setWindowIcon(QtGui.QIcon('./icon/icon.png')) self.button = QPushButton('猛吧,不說了', self) self.button.move(50, 100) self.slavewindow = slaveWindow() #dr = Figure_Canvas() #self.button.clicked.connect(lambda:dr.test(10)) self.button.clicked.connect(lambda: self.kline("txf")) self.button2 = QPushButton('彈出第二個視窗', self) self.button2.move(150, 100) self.slaveWindow2 = slaveWindow2() self.button2.clicked.connect(self.slaveWindow2.show) self.button3 = QPushButton('Quit', self) self.button3.clicked.connect(QCoreApplication.instance().quit) self.button3.move(600, 100) self.show()
def kline(self, num, a, b, tc): self.dr = Figure_Canvas() #實例化一个FigureCanvas self.dr.test(num, a, b, tc) # 畫圖 self.dr.show()
class addWindow(QTabWidget): def __init__(self, *args, parent=None): super(addWindow, self).__init__(parent) self.setWindowTitle('新增商品') #self.setFixedSize(500, 300) self.setGeometry(600, 300, 700, 400) self.listWidget = QListWidget(self) item = QtWidgets.QListWidgetItem() if len(args) == 0: # delimiter item.setText('商品' + '\t' * 2 + '說明\n' + '-' * 53) self.start = QLabel("起始", self) self.end = QLabel("結束", self) self.k = QLabel("K線週期", self) else: self.setWindowTitle('Add item') item.setText('item' + '\t' * 2 + 'Description\n' + '-' * 53) self.start = QLabel("Strat", self) self.end = QLabel("End", self) self.k = QLabel("K-Line", self) item.setFlags(QtCore.Qt.NoItemFlags) # item should not be selectable self.listWidget.addItem(item) self.listWidget.addItems(["%-20s%10s"%("中石化","中國石油化工股份有限公司"), \ "%-20s%10s"%("台泥","台灣水泥1101")]) self.listWidget.setFixedSize(330, 200) self.listWidget2 = QListWidget(self) self.listWidget2.addItems(["aa", "bb"]) self.listWidget2.setFixedSize(280, 200) self.listWidget3 = QListWidget(self) self.listWidget3.addItems(["cc", "dd"]) self.listWidget3.setFixedSize(280, 200) if len(args) == 0: self.addTab(self.listWidget, "股票") self.addTab(self.listWidget2, "期貨") self.addTab(self.listWidget3, "指數") else: self.addTab(self.listWidget, "stock") self.addTab(self.listWidget2, "futures") self.addTab(self.listWidget3, "index") self.year = QComboBox(self) self.month = QComboBox(self) self.day = QComboBox(self) self.year2 = QComboBox(self) self.month2 = QComboBox(self) self.day2 = QComboBox(self) self.scope = QLineEdit(self) self.Tcount = QComboBox(self) self.year.addItems([str(x) for x in range(1998, 2018)]) self.month.addItems([str(y) for y in range(1, 13)]) self.day.addItems([str(z) for z in range(1, 32)]) self.year2.addItems([str(a) for a in range(1998, 2018)]) self.month2.addItems([str(b) for b in range(1, 13)]) self.day2.addItems([str(c) for c in range(1, 32)]) self.scope.setPlaceholderText("default:1") #時間週期輸入框,設定字體大小 f = self.scope.font() f.setPointSize(12) self.scope.setFont(f) self.Tcount.addItems(["日", "周", "月"]) self.Tcount.resize(40, 27.5) self.start.move(350, 100) #起始時間標籤 self.year.move(400, 100) self.month.move(500, 100) self.day.move(600, 100) self.end.move(350, 150) #結束時間標籤 self.year2.move(400, 150) self.month2.move(500, 150) self.day2.move(600, 150) self.k.move(350, 200) self.scope.move(430, 200) self.Tcount.move(600, 200) self.subbutton = QPushButton('確認', self) self.subbutton.move(400, 350) backbutton = QPushButton('back \n返回 \nリターン \nбуцах', self) backbutton.move(550, 300) self.lineedit = QLineEdit(self) model = QStringListModel() model.setStringList(['中石化', '台泥', '竺元','aa','bb','cc'\ ,'dd']) completer = QCompleter() completer.setModel(model) self.lineedit.setCompleter(completer) self.lineedit.setFixedWidth(200) self.lineedit.setPlaceholderText("search by name") f = self.lineedit.font() f.setPointSize(12) self.lineedit.setFont(f) self.lineedit.move(350, 50) self.subbutton.clicked.connect( lambda: self.compare(self.currentIndex())) # 比較如果時間不符跳警示窗 backbutton.clicked.connect(self.close) self.bigtimer() self.space = self.lineedit.text() def bigtimer(self): try: self.listWidget.selectedItems()[0].text() self.timer() except: QTimer.singleShot(10, self.smalltimer) def smalltimer(self): if self.lineedit.text() != self.space: self.realtimer() else: QTimer.singleShot(10, self.bigtimer) def timer(self): try: self.listWidget.selectedItems()[0].text() self.clear_text() self.realtimer() except: QTimer.singleShot(10, self.timer) def realtimer(self): if self.lineedit.text() != self.space: self.clear(self.listWidget) self.timer() else: QTimer.singleShot(10, self.realtimer) def clear(self, listwidget): listwidget.clearSelection() def clear_text(self): self.lineedit.clear() def compare(self, index): a = None itemlist = (['中石化', '台泥', '竺元', 'aa', 'bb', 'cc', 'dd']) if index == 0: mylist = self.listWidget elif index == 1: mylist = self.listWidget2 elif index == 2: mylist = self.listWidget3 for i in mylist.selectedItems(): a = i.text()[:3].replace(" ", "") if a == None and self.lineedit.text() == "": self.dwrongmsg = dateWrong("NE") # no enter print("沒選擇啦嫩") self.dwrongmsg.show() elif a == None and self.lineedit.text() not in itemlist: self.dwrongmsg = dateWrong("NI") #no item print("沒有這項產品") self.dwrongmsg.show() elif int(self.year.currentText()) > int(self.year2.currentText()): self.dwrongmsg = dateWrong("T") #time error print("date wrong1") self.dwrongmsg.show() elif int(self.year.currentText()) == int(self.year2.currentText()) and int(self.month.currentText()) >= \ int(self.month2.currentText()): self.dwrongmsg = dateWrong("T") print("date wrong2") self.dwrongmsg.show() else: print("date right") self.tt(index) self.close() def tt(self, index): if index == 0: try: self.num = str( self.listWidget.selectedItems()[0].text()[:3].replace( " ", "")) except: self.num = self.lineedit.text() elif index == 1: self.num = str(self.listWidget2.currentItem().text()[:3].replace( " ", "")) elif index == 2: self.num = str(self.listWidget3.currentItem().text()[:3].replace( " ", "")) #file = open("./cache/fuckfile.txt","w",encoding = 'utf8') #file.write(self.num) print("stockcombo is " + self.num) if self.scope.text() == "": #如果沒有輸入時間週期,跑預設的1 self.num2 = 1 else: self.num2 = int(self.scope.text()) self.a = str(self.year.currentText()) + "-" + str( self.month.currentText()) + "-" + str(self.day.currentText()) self.b = str(self.year2.currentText()) + "-" + str( self.month2.currentText()) + "-" + str(self.day2.currentText()) if self.Tcount.currentText() == "日": self.tc = self.num2 * 1 elif self.Tcount.currentText() == "周": self.tc = self.num2 * 7 else: self.tc = self.num2 * 30 print("self.num=" + self.num) print("self.a=" + self.a) print("self.b=" + self.b) print("self.tc=" + str(self.tc)) self.kline(self.num, self.a, self.b, self.tc) def main(): app = QApplication(sys.argv) mainwindow = MainWindow() mainwindow.show() def onActivated(self, text): self.lbl.setText(text) self.lbl.adjustSize() def kline(self, num, a, b, tc): self.dr = Figure_Canvas() #實例化一个FigureCanvas self.dr.test(num, a, b, tc) # 畫圖 self.dr.show()