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)
Kliknięcie w ikone na toolbarze PyQT4
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2412
Samym rysowaniem to sie raczej nie programuje.
http://zetcode.com/tutorials/pyqt4/eventsandsignals/
- Rejestracja: dni
- Ostatnio: dni
Dla buttona to ja potrafie, po prostu nie potrafie dla toolbara i tego poszukuje
- Rejestracja: dni
- Ostatnio: dni
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 2412
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.
- Rejestracja: dni
- Ostatnio: dni
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)