pyqt qtablewidget ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
Handling context menus
On the #pyqt channel on Freenode, jams asked about adding a context menu to a table widget.
The context menu policy described by Qt.ContextMenuPolicy determines how context menus are handled by each widget. To choose a policy, we call its setContextMenuPolicy() method with one of the policy values. The useful policies are DefaultContextMenu, ActionsContextMenu and CustomContextMenu.
This means that there are basically three ways to add a context menu to a widget:
Subclass the widget and reimplement its contextMenuEvent() handler method, using the default context menu policy.
Add actions to the widget and set the context menu policy to ActionsContextMenu.
Set the context menu policy to CustomContextMenu and connect the widget’s customContextMenuRequested() signal to a slot or method where a menu can be opened.
The code for the examples shown here can be found as attachments to this page:
Subclassing
If you are writing a custom widget or are subclassing a standard widget, the default subclassing approach is quite convenient.
We reimplement the context menu event and create our own menu, making sure that we convert the position passed in the event object from local widget coordinates to global screen coordinates.
Actions
For widgets with built-in actions, we can change the policy to ActionsContextMenu and the widget will automatically obtain its own context menu. For widgets without built-in actions, we can add new ones.
We can even add actions to standard widgets without having to subclass them:
Signal and Slot
Sometimes, when we do not want to subclass a standard widget or use actions, it is easier to handle the context menu in a separate component, so we need a way for the widget to notify us when a context menu has been requested. We can do this by changing the policy to CustomContextMenu and connecting the widget’s customContextMenuRequested() signal to a slot, method or function.
The signal delivers a QPoint value, representing the position of the menu request in local widget coordinates. As before, we convert the position to a global screen position before showing the menu.
PyQt/Handling context menus (last edited 2014-06-07 00:01:10 by DavidBoddie )
Pyqt qtablewidget ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
Tree structure right-click menu
Table structure right-click menu
Intelligent Recommendation
Qt QTreeWidget tree structure implementation (transfer)
Example 1: Example two: Transfer from: http://www.cnblogs.com/Romi/archive/2012/04/16/2452709.html.
QT implements a simple tree structure, the use of QTreeWidget
QT implements a simple tree structure, the use of QTreeWidget Effect picture.
Menu table turning tree directory structure
contents Table Structure Preset condition Node class Method source code Table Structure The menu table should include: idοΌ Menu ID; pIdοΌ The upper level menu ID; Preset condition This method is preset.
Implementation of tree structure in PyQt5
The essence of the tree is that many pieces of data are displayed in a hierarchical level according to certain internal relationships. Therefore, each piece of data includes data items and mutual rela.
qt traverses files in the directory, qlistwidget list control, qtablewidget table control, qtreewidget tree control use
Regarding the qlistwidget list control, qtablewidget table control, qtreewidget tree control in qt, the use of clistbox, clistctrl, ctreectrl in vc is similar, and each row of records is manipulated t.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π² QTableWidget
Π½ΠΎ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π² ΡΡΠ½ΠΊΡΠΈΡ slotCustomMenuRequested ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΠΈΡΠΈ Π½Π΅ Π·Π°Ρ ΠΎΠ΄ΠΈΡ, ΡΠ΅Π³ΠΎ Π² ΡΠΎΠΌ ΠΊΠΎΠ΄Π΅ ΠΌΠΎΠΆΠ΅Ρ Π½Π΅ Ρ Π²Π°ΡΠ°ΡΡ ΠΈΠ»ΠΈ Π½ΠΏΠΈΡΠ°Π½ΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ?
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅ ΡΠ²Π°ΠΆΠ°Π΅ΠΌΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΠΎΡΡΠΌΠ°. Π‘ΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. ΠΠΌΠ΅Π΅ΡΡΡ Π²ΠΈΠ΄ΠΆΠ΅Ρ treeView.
ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
ΠΠ΄ΡΠ°Π²ΡΡΠ²ΡΠΉΡΠ΅! ΠΠΎΠΌΠΎΠ³ΠΈΡΠ΅ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΊ Π²ΠΈΠ΄ΠΆΠ΅ΡΡ( Π½ΠΈ Π² ΠΊΠ°ΠΊΡΡ Π½Π΅.
Qmenu ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π΄Π»Ρ treewidget ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΏΠΎΡΠ²Π»ΡΠ»ΠΎΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅.
ΠΠΎΠ±ΡΡΠΉ Π΄Π΅Π½Ρ, mh-coder.
ΠΡΠΎΡ ΡΡΠΎΠΊ ΡΠ΅ΡΠ½ΠΎ ΡΠ²ΡΠ·Π°Π½ Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ΠΉ http://www.evileg.ru/baza-znan. dzhet.html
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΠΊΠΎΠ΄Π° Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅. Π― ΠΏΠΎΠΏΡΠ°Π²Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΠΎΡΠΌΠΎΡΡΠ΅ΡΡ ΠΈ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΡΡΠ°ΡΡΡ.
ΠΡΠΈΠ²Π΅Π΄ΠΈΡΠ΅ Π»ΠΈΡΡΠΈΠ½Π³ΠΈ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½Π½ΠΎ Π²Ρ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΊΠΎΠ΄ Ρ ΡΠ΅Π±Ρ. Π― ΠΏΠΎΡΡΠ°ΡΠ°ΡΡΡ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π½Π° ΠΠ°ΡΠΈ Π²ΠΎΠΏΡΠΎΡΡ ΠΏΠΎ ΡΡΠΎΠΌΡ ΡΡΠΎΠΊΡ.
Legotckoi Π° Π²Π΄ΡΠ³ΠΈΡ
Π»ΠΈΡΡΠΈΠ½Π³Π°Ρ
Π΅ΡΡΡ ΡΡΠΎ-ΡΠΎ ΡΡΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΠΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ?
Π²ΠΎΡ ΠΊΠΎΠ΄, Π°Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ΄Π΅Π»Π°Π½ΠΎ ΠΊΠ°ΠΊ Π² ΡΡΠ°ΡΡΠ΅
Π Π΅ΡΠ΅Π½ΠΈΠ΅
ΠΠΎΠ»Π°Π³Π°Ρ, ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° Π·Π΄Π΅ΡΡ.
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ°ΠΊ Π·Π°ΠΏΠΈΡΠ°ΡΡ
P.S. ΠΡ ΠΏΡΠ°Π²Ρ, Π»ΠΎΠ³ΠΈΠΊΠ° ΡΠ°Π±ΠΎΡΡ QMenu Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ Π² ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΠΠ°ΡΠ΅ΠΌΡ Π»ΠΈΡΠ½ΠΎΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡΠ΅ΡΠ΅Π· 18 ΠΌΠΈΠ½ΡΡ
mh-coder, Π»ΠΈΠ±ΠΎ Π½Π°ΠΏΠΈΡΠΈΡΠ΅ ΡΠ°ΠΊ
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΡΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°
ΠΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΠΈ.
ΠΠ΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π½Π° listWidget
Π£ ΠΌΠ΅Π½Ρ Π΅ΡΡΡ Π² ΡΠΎΡΠΌΠ΅ listWidget. Π ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΎΡΠ΅ ΠΎΠΊΠ½Π° Ρ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°Ρ customContextMenuRequested ΠΊ ΠΌΠΎΠ΅ΠΉ.
QGraphicsView ΠΈ QGraphicsItem ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
ΠΠΌΠ΅Π΅ΡΡΡ ΠΊΠ»Π°ΡΡ, ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½Π½ΡΠΉ ΠΎΡ QGraphicsView. Π Π½Π΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΎ ΡΠΎΠ±ΡΡΠΈΠ΅ contextMenuEvent. ΠΠ°.
ΠΠ΅ ΠΈΡΡΠ΅Π·Π°Π΅Ρ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΡΡΠ΅Ρ
ΠΡΠ΅ΠΌ ΠΏΡΠΈΠ²Π΅Ρ! ΠΠΎΠΏΡΠΎΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ Π ΡΡΠ΅Π΅ Π²ΠΈΡΠΈΡ ΠΈΠΊΠΎΠ½ΠΊΠ° ΠΠ° Π½Π΅Ρ ΠΏΠΎΠ²Π΅ΡΠ΅Π½ΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ ΠΠΎΠ΄.
ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π² item?
ΠΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΡΠ΅ ΠΌΠ΅Π½Ρ Π² ΠΊΠ°ΠΆΠ΄ΡΠΉ item, ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ.
Π ΡΡΡΠΊΠΈΠ΅ ΠΠ»ΠΎΠ³ΠΈ
PyQt5 QTableWidget ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈ ΡΠ΄Π°Π»ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ
ΠΠ΅Π΄Π°Π²Π½ΠΎ Ρ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π» Ρ PyQt5 Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΈΡΠ°ΡΡ ΠΌΡΠ³ΠΊΠΎ, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Ρ Π½Π΅ Π·Π½Π°ΠΊΠΎΠΌ Ρ PyQt5, Ρ ΡΡΠΎΠ»ΠΊΠ½ΡΠ»ΡΡ ΡΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π°. Π― ΠΌΠΎΠ³Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π°ΠΉΡΠΈ ΡΠΏΠΎΡΠΎΠ± Π² Baidu Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅. ΠΡΠΎΡ Π±Π»ΠΎΠ³ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ΅Π·ΡΠΌΠΈΡΡΠ΅Ρ ΠΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ QTableWidget Π² PyQt5.
1. QTableWidget Π΄ΠΈΡΠΏΠ»Π΅ΠΉ
ΠΠΎΠ΄ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±Π»ΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ, ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ ΠΊ ΠΊΠΎΠ΄Ρ.
2. QTableWidget ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ° ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ
ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΡΠΈΠ²ΡΠ·Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ ΡΠ΅Π»ΡΠΊΠ° Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠΌ ΠΌΠ΅Π½Ρ:
Π ΡΠΎΠ±ΡΡΠΈΠΈ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ ΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ Π² ΠΌΠ΅Π½Ρ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ, ΠΈ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΠ»Π΅ Π½Π°ΠΆΠ°ΡΠΈΡ Π½Π° ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ. ΠΠΎΠ΄ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΡΠ»Π΅ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ:
3. ΠΠΎΠ±Π°Π²ΠΈΡΡ ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΠΎΠ±ΡΡΠΈΡ Π² QTableWidget
ΠΡΠ½ΠΎΠ²ΡΠ²Π°ΡΡΡ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΌΠ΅Π½Ρ QTableWidget, Π²ΡΠ·ΡΠ²Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ, ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ±ΡΡΠΈΠΉ Π² ΡΠ°Π±Π»ΠΈΡΠ΅ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Ρ Π² ΠΊΠΎΠ΄Π΅.
ΠΠ½ΡΠ΅Π»Π»Π΅ΠΊΡΡΠ°Π»ΡΠ½Π°Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡ
AlamoFire Source Severtation Series (12) ΠΎΡΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ (Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΊΠ°Π»Π°)
ΠΡΠ° ΡΡΠ°ΡΡΡ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ΄Π΅ΠΈ ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΡΠΊΠ°Π»Π΅ Π² AlamoFire ΠΡΠ΅ΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ Timeline ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠΊΠ°Π»Π° ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠΎΠ±ΡΡΠΈΠ΅ Ρ Π½Π°ΡΠ°Π»Π° Π΄ΠΎ ΠΊΠΎΠ½ΡΠ° ΡΠ·Π»Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½.
ΠΠ½Π°Π»ΠΈΠ· ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ iOS initWithFrame, initWithCoder, awakeFromNib
ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΈΠΏΠΎΠ²ΡΡ Π²Π΅ΡΡΠΈΠΉ ΡΠ°ΠΌΡ
QTableView ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ
ΠΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ, ΠΊΠΎΡΠΎΡΠ°Ρ Π³ΡΡΠ·ΠΈΡ Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ· ΠΠ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ Π½Π΅Π΅. ΠΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΡΡΠΎΠΊ Π² ΡΠ°Π±Π»ΠΈΡΡ. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Ρ ΠΏΠΎΠΊΠ° ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π», Π½ΠΎ ΠΊΡΠΈΠ²ΠΎ, Π½ΡΠΆΠ½ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ.
void QWidget::addActions(QList actions)
ΠΠΎΠΆΠ½ΠΎ Π΅ΡΠ΅ setContextMenuPolicy(Qt::CustomContextMenu) ΠΈ Π»ΠΎΠ²ΠΈΡΡ ΡΠΈΠ³Π½Π°Π» QWidget::customContextMenuRequested ( const QPoint & pos ). Π ΡΠ»ΠΎΡΠ΅-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ΅ ΡΡΠΎΠ³ΠΎ ΡΠΈΠ³Π½Π°Π»Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΆΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΡΠ³ΠΎΠ΄Π½ΠΎ.
Π£ ΠΌΠ΅Π½Ρ ΡΠΎΡΡΠ΅Π½ΡΡ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½ΠΈ Π΄ΠΎΠΌΠ°, Π½ΠΈ Π½Π° ΡΠ°Π±ΠΎΡΠ΅. Π‘ΠΊΠ°ΡΠ°Π» ΠΊΠ°ΠΊΡΡ ΡΠΎ ΡΠΈΠ³Π½Ρ ΠΎΡ ΡΡΠΎΠ³ΠΎ ΠΆΠ΅ Π°Π²ΡΠΎΡΠ°, ΡΠ°ΠΌ Π²ΡΠ΅Π³ΠΎ 250 ΡΡΡΠ°Π½ΠΈΡ. ΠΡΡΠΌΠΎΠΉ ΡΡΡΠ»ΠΊΠΈ Π½Π΅ Π½Π°ΡΠ΅Π».
Π’Ρ ΠΆΠ΅ Π² ΠΊΡΡΡΠ΅, ΡΡΠΎ ΡΡΡΠ΅ΡΡΠ²ΡΡΡ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΈ, ΠΎΡΠ»ΠΈΡΠ½ΡΠ΅ ΠΎΡ ΡΠΎΡΡΠ΅Π½ΡΠ°?
ΠΠΎΠ», Ρ ΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π», ΡΡΠΎ ΠΈΡΠΊΠ°Π» Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΠΎΡΡΠ΅Π½ΡΠ°Ρ .
Π‘ΠΊΠ°ΡΠ°Π» ΡΠ°ΠΊΠΈ. ΠΠΈΡΡΠ°Ρ.
ΠΠΊ, Π² ΠΊΠ½ΠΈΠΆΠΊΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ:
Π§ΡΠΎΠ±Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ½ΠΎΠ΅ ΠΌΠ΅Π½Ρ, Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°
ΠΠΎΠ±Π°Π²ΠΈΠ» QMenu. ΠΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠ» ΠΌΠ΅ΡΠΎΠ΄ contextMenuEvent:
Π, Ρ Π·Π°Π±ΡΠ» Π·Π°ΠΊΠΎΠ½Π½Π΅ΠΊΡΠΈΡΡ ΠΌΠ΅Π½ΡΡΠΊΡ. Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ.
Π― ΡΠ°ΠΊΠΈ Π½Π΅ ΠΏΠΎΠ½ΡΠ», ΠΊΡΠΎ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π΄Π΅ΡΠ³Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄ contextMenuEvent? Π ΠΊΠ½ΠΈΠΆΠΊΠ΅ ΠΌΠ΅Π½Ρ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ, Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡΡΠΈ ΠΎΠ½ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠ°ΠΌΠΎ Π²ΡΠ·Π²Π°ΡΡΡΡ.
Π ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ ΠΎΠ½ΠΎ Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· self.customContextMenuRequested.connect(self.contextMenuEvent). ΠΡΠΈ ΡΡΠΎΠΌ, ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Ρ ΡΠ΅Π½ Π·Π½Π°Π΅Ρ ΠΎΡΠΊΡΠ΄Π°. ΠΠ½Π΅ Π½ΡΠ°Π²ΠΈΡΡΡ ΡΠΎΡ Π²Π°ΡΠΈΠ°Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π² ΠΊΠ½ΠΈΠΆΠΊΠ΅ ΠΎΠΏΠΈΡΠ°Π½, Π½ΠΎ ΠΎΠ½ Π½Π΅ ΠΏΠ°ΡΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠΎΡΠΈΠ½ΠΈΡΡ?
Π― ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΡΡ ΠΌΠ΅Π½Ρ Ρ contextMenuEvent, ΠΌΠ΅Π½ΡΡΠΊΠ° Π²ΡΠ΅ Π°ΡΠ²Π½ΠΎ Π½Π΅ ΡΠΈΡΡΠ΅ΡΡΡ.