Thread View: pl.comp.lang.python
2 messages
2 total messages
Started by Jax
Wed, 25 Mar 2009 16:39
QT4 QTableView drag&drop - dramat! ratunku!
Author: Jax
Date: Wed, 25 Mar 2009 16:39
Date: Wed, 25 Mar 2009 16:39
45 lines
3120 bytes
3120 bytes
Witam [co chcę] Chcę zrealizować prosty problem. Mam prostą tabelkę 3 kolumny i parę wierszy. I chcę by użytkownik miał możliwość prostego przeciągania wierszy po tej tabelce (w celu zmiany ich kolejności). Nie chcę robić lamerskich przycisków ze strzałkami "góra"/"dół" obok tabelki tylko chcę by to było normalne. Chcę to zrobić tworząc klasę potomną z QAbstractTableModel i podczepiać pod odpowiednio skonfigurowany obiekt klasy QTableView. [co już mam] Obecnie mam zrobione przeciąganie wiersza i wstawianie jego kopi na właściwym miejscu. Ale nie jest usuwany wiersz źródłowy. [w czym problem] Nie wiem jak zrobić drag&drop typu "move" zamiast "copy". "copy" może być w kontakcie z zewnętrznymi aplikacjami, a w obrębie programu chcę mieć "move" (tak chyba jest za zwyczaj). Nie mam pojęcia jak to zrobić bez dziedziczenia QTableView. Nie chcę dziedziczyć z QTableView bo jestem zadowolony z QDesinger i nie chcę dalszego rozrostu kodu (obsługa d&d już obecnie powiększyła kod jakieś 340% - kod jest w załączniku i każdy może to sprawdzić). Wszystkiego próbowałem, przekopałem dokumentację i Google ale bez skutku. Obecnie ściągam źródła QT4.5 ale nie wiem czy w rozsądnym czasie da się z nich coś wyczytać. [mój kod] W załączniku zamieszczam fragment programu co się odnosi do obsługi QTableView. Jest on pisany w Pythonie z PyQt4 ale problem dotyczy QT4 która jest zasadniczo biblioteką C++ (dlatego pytam również na pl.comp.lang.c). Ja piszę to w Pythonie bo to ma być prosty ale wygodny edytor pliku konfiguracyjnego dla skryptu z interfejsem CLI i zasadniczo to nie obchodzi Mnie ile te skrypty będą działać (gdy jest to 10-60 minut). [krótkie objaśnienie kodu] W klasie okna głównego MainWindow(QMainWindow) jest ładowany interfejs użytkownika wywołaniem self.mWindow.setupUi(self). Tam tworzony jest między innymi obiekt self.mWindow.mFiltersFiles klasy QTableView. To własnie ten obiekt ma mieć proste przesuwanie wierszy w górę i w dół. Modelem obsługującym dane dla tego obiektu jest FiltersFileModel(QtCore.QAbstractTableModel). I to właśnie za jego pomocą chciałbym zrealizować ten drag&drop bez dziedziczenia z QTableView. Jax
Re: QT4 QTableView drag&drop - dramat! ratunku!
Author: Jax
Date: Thu, 26 Mar 2009 07:02
Date: Thu, 26 Mar 2009 07:02
3 lines
883 bytes
883 bytes
Zrobione. Nie ma tematu. Jax
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads