🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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!
#25905
Author: Jax
Date: Wed, 25 Mar 2009 16:39
45 lines
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!
#25906
Author: Jax
Date: Thu, 26 Mar 2009 07:02
3 lines
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