Найти - Пользователи
Полная версия: Помогите, пожалуйста, с GUI.
Начало » Центр помощи » Помогите, пожалуйста, с GUI.
1 2 3
py.user.next
caille
но если я комментирую вставленные в mmv_ui строчки, исчезает даже сетка.
Если вписала туда, где всё сгенерено, то надо это перенести туда, где пишешь руками.
У тебя ui-файла нет, по которому это сгенерено?
Это всё делается автоматически: ты окрываешь среду, там лепишь окна мышкой, среда делает по этим окнам ui-файл, этот ui-файл (это просто xml) ты передаёшь в генератор и он генерит вот этот код со старыми сигналами. Каждый раз это происходит снова и снова, поэтому файл генерится всё время заново, поэтому и писать туда ничего нельзя, даже комментарии.
Rodegast
> а здесь, что не знает, что такое parent

Тогда убери от туда parent и сверху напиши Qt4MplCanvas.__init__(self, parent)
Я всё это написал схематически что-бы было понятно как оно должно работать.
caille
py.user.next
Если вписала туда, где всё сгенерено, то надо это перенести туда, где пишешь руками.
У тебя ui-файла нет, по которому это сгенерено?
Это всё делается автоматически: ты окрываешь среду, там лепишь окна мышкой, среда делает по этим окнам ui-файл, этот ui-файл (это просто xml) ты передаёшь в генератор и он генерит вот этот код со старыми сигналами. Каждый раз это происходит снова и снова, поэтому файл генерится всё время заново, поэтому и писать туда ничего нельзя, даже комментарии.
ui есть, но я его в py сразу командой переделала, так что по идее он не должен заново каждый раз генерироваться.
если переносить, то в Qt4MplCanvas или в MyWindow?
self.fig=Figure()
self.axes=self.fig.add_subplot(111)
self.canvas = FigureCanvas( self.fig )
self.can.addWidget(self.canvas)
эти строчки ведь, насколько я понимаю, поле для графика и строят?

File “C:\Python\MMPISIS\qt.py”, line 16, in __init__
self.can.addWidget(self.canvas)

RuntimeError: super-class __init__() of type Qt4MplCanvas was never called

class Qt4MplCanvas(FigureCanvas):
    def __init__(self, parent=None):
        self.fig=Figure()
        self.axes=self.fig.add_subplot(111)        
        self.canvas = FigureCanvas( self.fig )
        self.can.addWidget(self.canvas)
        self.axes.set_xlabel("k")
        self.axes.set_ylabel("Pk")
        self.axes.grid(True)
        FigureCanvas.__init__(self,self.fig)
        
    def setup(self, x, x2, y, y2):
        self.axes.clear()        
        self.axes.plot(self.x, self.y, self.x2, self.y2)
        self.axes.set_xbound(lower=0, upper=self.x.max())
        self.axes.set_ybound(lower=0, upper=1.1)
        self.axes.legend()
class MyWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        QMainWindow.__init__(self)
        self.setupUi(self)
        Ui_MainWindow.__init__(self)
        self.plot = Qt4MplCanvas()
        ........

py.user.next
caille
ui есть, но я его в py сразу командой переделала, так что по идее он не должен заново каждый раз генерироваться.
А если надо будет какую-нибудь кнопку новую сделать или поле? Там, вообще, можно и не генерить, можно использовать динамическую подключалку ui-файла.

Возьми весь код, который у тебя сейчас работает, запакуй его в архив и прикрепи к сообщению. Чтобы можно было его распаковать и сразу запустить. А вообще надо пользоваться репозиториями для обмена кодом типа http://gist.github.com , а то собирать кусочки и советы давать не очень удобно.
caille
py.user.next
А если надо будет какую-нибудь кнопку новую сделать или поле? Там, вообще, можно и не генерить, можно использовать динамическую подключалку ui-файла.
ну, сейчас я в qt designer форму меняю, сохраняю и вручную заново генерирую. вообще планирую после сессии нормально это все изучить, сейчас так обстоятельства сложились)
py.user.next
Вот поправил там. График не рисуется, но я его хотя бы встроил в окно.
caille
py.user.next
Вот поправил там. График не рисуется, но я его хотя бы встроил в окно.
спасибо большое)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB