Witam, nigdzie nie moge znaleźć odpowiedzi. Mam zrobiony designerem toolbar z ikonkami, i chce żeby po kliknięciu w daną ikone coś się wykonywało. (kod wygenerowany przez designera)
Samym rysowaniem to sie raczej nie programuje.
http://zetcode.com/tutorials/pyqt4/eventsandsignals/
Dla buttona to ja potrafie, po prostu nie potrafie dla toolbara i tego poszukuje
Nie można spróbowac tak samo bo toolbar nie ma czegoś takiego jak indexy więc nie idzie w ten sposób się odwołać do konkretnego obrazka, bądż napisu
Widze, ze starasz sie mi wmowic, ze tak sie tego nie robi, no coz... Popre swoje twierdzenie, ze jednak tak sie da to zrobic, drobnym how-to.
Tworzymy mala aplikacje w PyQt4. Zwykle okno z toolbarem i przyciskiem zamkniecie.
- Tworzenie akcji:
exit_action = QtGui.QAction('Exit', self)
exit_action.setShortcut('Ctrl+Q')
exit_action.triggered.connect(QtGui.qApp.quit)
- Tworzenie toolbara
self.toolbar = self.addToolbar('Exit')
self.toolbar.addAction(exit_action)
Mamy gotowego toolbara z jedna akcja, reszty nie bede opisywac bo jest chyba oczywista.
Calosc:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QMainWindow):
def __init__(self):
super(Example, self).__init__()
self.initUI()
def initUI(self):
exit_action = QtGui.QAction('Exit', self)
exit_action.setShortcut('Ctrl+Q')
exit_action.triggered.connect(QtGui.qApp.quit)
self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exit_action)
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Toolbar')
self.show()
def main():
app = QtGui.QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Edit:
Teraz chyba wiem na czym polega Twoj problem,
Czy nie wiesz jak sie odwolac do obiektu danej akcji, ktora zostala wygenerowana przez designer?
Jesli tak, to w designerze na 99,9% jest nazwa tego obiektu i odwolanie jest takie jak do kazdego innego obiektu 'self.blablabla', chyba ze designer dodaje jakis obiekt proxy, wtedy 'self.proxy.blablabla'
Czy moze nie wiesz jak stworzyc taka akcje?
O ile mnie pamiec nie myli, to [PPM-toolbar]->addAction, czy cos w ten desen.
self.ui.actionUstawienia,QtCore.SIGNAL("triggered()")
Rzeczywiscie wystarczylo wpisac, myslalem ze cos bardziej skomplikowanego bo szukając w googlach wyskakiwały jakieś wymysły, dodatkowe linijki itd. jakby ktoś szukał to podałem kod. actionustawienia to po prostu wygenerowane przez disegnera, dzięki za to, że mi pomogłeś (bo w sumie pomogłeś - dzieki)