如何做出炒股软件附图指标的那种小窗口 | python | python 技术论坛-金年会app官方网
 如何做出炒股软件附图指标的那种小窗口,可以跟随主窗口移动并且可以根据主窗口的大小而变化。
如何做出炒股软件附图指标的那种小窗口,可以跟随主窗口移动并且可以根据主窗口的大小而变化。
我是通过将一个qwidget的子窗口嵌入qmainwindow主窗口的思路,但是我发现:
update_size方法中设置了子窗口的位置和大小,但是却没有按照我设置的尺寸显示,而且self.setwindowflags(qt.framelesswindowhint)
这段代码也无效,问过ai了,给的三个方法,就这个还能显示,其他的连子窗口都不显示,之前在pyqt5中这段代码就可以运行,现在转到pyside6中
就不行了,实在找不到原因了
import os
import sys
import pandas as pd
import locale
de = locale.getpreferredencoding()
from pyside6.qtcore import *
from pyside6.qtgui import *
from pyside6.qtwidgets import *
class mainwindowa(qmainwindow):
    def init(self):
        super().init()
        self.init_ui()
def init_ui(self):
    self.setwindowtitle("主窗口 b")
    screen = qapplication.primaryscreen().geometry()
    self.screenwidth = screen.width()
    self.screenheight = screen.height()
    self.setgeometry(0, 0, int(self.screenwidth * 0.8), self.screenheight)
    self.mdi_area = qmdiarea()
    self.setcentralwidget(self.mdi_area)
    #  self.mainwindowb = mainwindowb()
        self.mdi_area.addsubwindow(self.mainwindowb)
    # self.mainwindowb.show()  def resizeevent(self, event):
        super().resizeevent(event)  # 调用父类的 resizeevent 方法
  new_size = event.size()
        new_width = new_size.width()
        new_height = new_size.height()
    self.mainwindowb.update_size(new_width, new_height)   # 自由指标窗口class mainwindowb(qwidget):
    def init(self):
        super().init()
        self.setwindowflags(qt.framelesswindowhint)
    # self.init_ui()  def init_ui(self):
        self.setwindowtitle(“副窗口 b”)
def create_painter(self, qp, color, width):
    qp.save()
    pen = qpen(qcolor(color), width)
    qp.setpen(pen)
    return qp
def paintevent(self, event):
    qp = qpainter(self)
    # qp.setrenderhint(qpainter.antialiasing)  self.create_painter(qp, qt.red, 2).drawline(0, self.height() -100, self.width()-600, self.height() -100)
        print(‘a’)
def update_size(self, new_width, new_height):
    y1 = int(new_height * 0.975)
    y2 = int(new_height * 0.10417)
    self.setgeometry(0, y1, new_width, y2)
    self.update()
    # mainwindowb子窗口为什么没有按照我设置的位置和大小显示if name == ‘main‘:
    app = qapplication(sys.argv)
    main_window_a = mainwindowa()
    main_window_a.show()
    sys.exit(app.exec())


 
 
set all widgets mouse tracking to true !