Re: How to copy the content of a QPopupMenu ?
Well, the Google web interface didn't quite work as expected there. Here's a version of the previous message containing just my advice. You might want to use QAction to define individual items that can be activated. That way you can just reuse the same actions in both menus or move them from one to another. Submenus will probably take more effort to move. In some ways, it might be useful to keep some sort of data structure around that you can use as a template for the menu, and regenerate the menu from that. Aside: The Qt 4 action system probably makes it a lot easier to do what you're trying to do, though that's not a lot of help if your project is based on Qt 3. :-/ -- http://mail.python.org/mailman/listinfo/python-list
Re: How to copy the content of a QPopupMenu ?
[EMAIL PROTECTED] wrote: > In my case, I would like to copy an item from > a popup menu to another popup menu ... Of course, > I can create a new item with same name, same pixmap > and so on but I don't know how to execute the same code > when my new item is activated ... And I don't know how > to treat the separators (Is there a way to distinguish a > real item from a separator ?) And what about the sub-menus ... You might want to use QAction to define individual items that can be activated. That way you can just reuse the same actions in both menus or move them from one to another. Submenus will probably take more effort to move. In some ways, it might be useful to keep some sort of data structure around that you can use as a template for the menu, and regenerate the menu from that. > In fact, all items (usual items, separators and sub-menus) are > ... items. So I was wondering if it is a way to copy an item > (more precisely to get an item then to insert it in another menu) Not with one single operation as far as I can see, unless you're using QAction, and even then it will only work for normal menu items. Aside: The Qt 4 action system probably makes it a lot easier to do what you're trying to do, though that's not a lot of help if your project is based on Qt 3. :-/ David -- http://mail.python.org/mailman/listinfo/python-list
Re: How to copy the content of a QPopupMenu ?
[EMAIL PROTECTED] wrote: > Dear Diez, > > Thanks ... I've already read the doc :) > > In my case, I would like to copy an item from > a popup menu to another popup menu ... Of course, > I can create a new item with same name, same pixmap > and so on but I don't know how to execute the same code > when my new item is activated ... And I don't know how > to treat the separators (Is there a way to distinguish a > real item from a separator ?) And what about the sub-menus ... > > In fact, all items (usual items, separators and sub-menus) are > ... items. So I was wondering if it is a way to copy an item > (more precisely to get an item then to insert it in another menu) Your approach at whole must be changed. You can't just insert the old items somewhere else - they have a 1:n parent-relation that would be changed - either crashing, or simply removing your item from your old menu. What you need is a different means to create the items - some factory/function that gets passed a QPopupMenu and adds all the items, together with the connectrions and so on. You then invoke that on the other menu. Diez -- http://mail.python.org/mailman/listinfo/python-list
Re: How to copy the content of a QPopupMenu ?
Dear Diez, Thanks ... I've already read the doc :) In my case, I would like to copy an item from a popup menu to another popup menu ... Of course, I can create a new item with same name, same pixmap and so on but I don't know how to execute the same code when my new item is activated ... And I don't know how to treat the separators (Is there a way to distinguish a real item from a separator ?) And what about the sub-menus ... In fact, all items (usual items, separators and sub-menus) are ... items. So I was wondering if it is a way to copy an item (more precisely to get an item then to insert it in another menu) Cheers, E.A. -- http://mail.python.org/mailman/listinfo/python-list
Re: [pyqt] How to copy the content of a QPopupMenu ?
[EMAIL PROTECTED] wrote: > Dear all, > > For a particuliar case, I need to copy all the items of > an existing menu (including the separators and sub-menus) > in a new empty one ... Does someone knows how to do that ? > I've tried : > item = menu_orig.findItem(item_id) > menu_new.insertItem(item, item_id) > but it fails with : > TypeError: argument 1 of QMenuData.insertItem() has an invalid type >From the docs: """ QMenuItem * QMenuData::findItem ( int id ) const Returns the menu item with identifier id, or 0 if there is no item with this identifier. Note that QMenuItem is an internal class, and that you should not need to call this function. Use the higher level functions like text(), pixmap() and changeItem() to get and modify menu item attributes instead. See also indexOf(). """ Diez -- http://mail.python.org/mailman/listinfo/python-list
[pyqt] How to copy the content of a QPopupMenu ?
Dear all, For a particuliar case, I need to copy all the items of an existing menu (including the separators and sub-menus) in a new empty one ... Does someone knows how to do that ? I've tried : item = menu_orig.findItem(item_id) menu_new.insertItem(item, item_id) but it fails with : TypeError: argument 1 of QMenuData.insertItem() has an invalid type Thanks in advance, Cheers, K. -- http://mail.python.org/mailman/listinfo/python-list