Qlistwidget Trag and Drop Configuration: когда использовать режим вместо свойств перетаскивания/выпадения?C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Qlistwidget Trag and Drop Configuration: когда использовать режим вместо свойств перетаскивания/выпадения?

Сообщение Anonymous »

Я учусь настройке перетаскивания в описании структуры модели просмотра на сайте QT. При применении к удобному взгляду (QListWidget, qtablewidget , Qtreewidget ), документация использует либо (в исходной версии C ++):
listWidget->setDragEnabled(true);
listWidget->viewport()->setAcceptDrops(true);
< /code>
или: < /p>
listWidget->setDragDropMode(QAbstractItemView::InternalMove);

Я не могу выяснить, является ли Setdragdropmode ярлыком для установки отдельных свойств виджета и какие в дополнение к двум выше, или на самом деле это делает больше. Я вижу, как QabstractitemView :: internalMove и QabstractitemView :: Dragdrop оба устанавливают Dragenabled и setacceptdrops к True , но приводят к другому поведению для элемента (Move vs. Copy), поэтому я знаю, что за режим стоит больше метода режима. Я хотел бы уточнить эту точку, чтобы узнать, когда использовать метод режима. /> < /ul>
Я использую qt для python, если это важно. < /p>

В качестве примера, если я создаю виджет списка с каждым подходом, кажется, что результат совершенно эквивалентен (в этом конкретном случае): < /p>
, кажется, результат совершенно эквивалентен (в этом конкретном случае): < /p>
from qtpy.QtWidgets import (QApplication, QWidget, QListWidget, QHBoxLayout)

class Window(QWidget):

texts = ['Sycamore', 'Chestnut', 'Walnut', 'Mahogany']

def __init__(self):
super().__init__()

lw_1 = QListWidget()
lw_1.addItems(self.texts)
self.print_props('When created', lw_1)

lw_2 = QListWidget()
lw_2.addItems(self.texts)

# Comparing
lw_1.setDragEnabled(True)
lw_1.viewport().setAcceptDrops(True)
lw_1.setDropIndicatorShown(True)
self.print_props('Using properties', lw_1)

# With
mode = lw_2.DragDrop
lw_2.setDragDropMode(mode)
self.print_props(f'Using mode ({mode})', lw_2)

layout = QHBoxLayout(self)
layout.addWidget(lw_1)
layout.addWidget(lw_2)

def print_props(self, text, widget):
print()
print(text)
print('drag:', widget.dragEnabled())
print('drop:', widget.viewport().acceptDrops())
print('mode:', widget.dragDropMode())

def main():
app = QApplication([])
window = Window()
window.show()
app.exec()

main()


Подробнее здесь: https://stackoverflow.com/questions/796 ... of-the-dra
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»