crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V  < 1 2  
Ответить в данную темуНачать новую тему
> QTableWidget, Как програмно реализовать перетаскивание?, Типа Drag-n-Drop, но в коде.
igor_bogomolov
  опции профиля:
сообщение 22.4.2009, 20:51
Сообщение #11


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


По этой теме тоже баг репорт написал. Походу не приняли. Видимо из-за моего английского, не поняли что я имею ввиду :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 25.4.2009, 0:07
Сообщение #12


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Привет всем.
Сообщением выше я писал, ято отправлял баг репорт по данной теме. Во какой ответ я получил.
Цитата
Hi Igor,
Thanks for reporting this issue.
The code seems to show that this particular case has been omitted, which I agree, could lead to a weird behaviour, even though it is definitely not critical.
However, I tried with no luck reproducing the issue, I attached the test I tried with.
If you either get a FAIL! with this test case, or can provide me with a little compilable example that reproduces the problem, I could file a bug report for that problem.

Моих знаний английского не хватает, что бы до конца понять ответ.
Пробовал перевести Google-ом. Они просят что ли написать небольшой тестовый пример воспроизводящий баг?

Заранее спасибо за помощь :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2009, 0:54
Сообщение #13


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Перевод:
Цитата
Привет Игорь,
Спсибо за сообщение об этой проблеме.
Код, как (мне) кажется, показывает, что этот особый случай был опущен (не принят во внимание), с которым я согласен, может привести к неожиданному поведению, даже несмотря на то, что это некритично.
Тем не мение, я пытался безуспешно воспроизвести проблему, я прикрепил тест, который я проводил.
Если выполучите FAIL! во время этого теста, или сможете предоставить мне маленький компилируемый пример, который воспроизводит проблему, я могу подать сообщение об ошибке для этой проблемы.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 25.4.2009, 1:01
Сообщение #14


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Спасибо, Юрий.
Можно еще совет спросить. Я может сейчас, может за выходные, накидаю тестовый примерчик. Как дальше поступить, создать новый баг репорт или ответить на полученное письмо, и там прикрепить тест?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 25.4.2009, 2:12
Сообщение #15


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(igor_bogomolov @ 25.4.2009, 5:01) *
или ответить на полученное письмо, и там прикрепить тест?
или, тебя так и просят.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
igor_bogomolov
  опции профиля:
сообщение 27.4.2009, 17:02
Сообщение #16


Профессионал
*****

Группа: Сомодератор
Сообщений: 1215
Регистрация: 22.3.2009
Из: Саратов
Пользователь №: 630

Спасибо сказали: 235 раз(а)




Репутация:   29  


Вот ответ который я получил
Цитата
Hi Igor,
Thanks for the test. I am not sure yet why I can't reproduce it with my testcase but yours worked. I've created a task for the development team who will look into fixing
this for a future release.
You can track the status of this entry in the Task Tracker with ID 252253.

See:
http://www.qtsoftware.com/developer/task-t...y&id=252253


Из переписки встал следущий вопрос. В первом письме от тех поддержки я получил следущий код для проверки бага
test.cpp
#include <QtTest/QtTest>
#include <QTreeView>
#include <QStandardItemModel>
#include <QLineEdit>
#include <QApplication>
class Test : public QObject{
      Q_OBJECT

private slots:

      void testSetIndexWidget(){
              QLineEdit *lineEdit = new QLineEdit();
              QTreeView itemView;
              QStandardItemModel model;
              itemView.show();
              model.appendRow(new QStandardItem("an item"));
              itemView.setModel(&model);

              itemView.setIndexWidget(model.index(0,0),lineEdit);
              QApplication::processEvents();

              QVERIFY(itemView.indexWidget(model.index(0,0)));
              QCOMPARE(itemView.indexWidget(model.index(0,0)),lineEdit );

              itemView.setIndexWidget(model.index(0,0),lineEdit);
              QApplication::processEvents();

              QVERIFY(itemView.indexWidget(model.index(0,0)));
              QCOMPARE(itemView.indexWidget(model.index(0,0)),lineEdit );
      }
};

QTEST_MAIN(Test)
#include "test.moc"

testcase.pro
CONFIG+=teambuilder
TEMPLATE = app
TARGET = testcase
DEPENDPATH += .
INCLUDEPATH += .

# Input
SOURCES += test.cpp
CONFIG += qt warn_on debug  create_prl link_prl
QT += testlib



Внутри setIndexWidget для lineEdit у нас вызывается deleteLater. Далее делается QApplication::processEvents() для того чтобы deleteLater отработал. Тем не менее удаления не происходит. Я пробовал делать разные тесты, но положительного результата так и не добился. Кто знает в чем проблема? Почему в данном случае deleteLater у нас не отробатывается?


P.S.
Если кому интересно, вот код который я отправил, что бы баг репорт приняли.
Раскрывающийся текст
#include <QtGui/QApplication>
#include <QtGui/QDialog>
#include <QtGui/QTableWidget>
#include <QtGui/QLineEdit>
#include <QtGui/QVBoxLayout>
#include <QtCore/QTimer>

class MyClass : public QDialog {
    Q_OBJECT

private:
    QLineEdit *le;
    QTableWidget *tw;

public:
    MyClass(QWidget *parent = 0) : QDialog(parent) {
        tw = new QTableWidget(5, 5);
        le = new QLineEdit;
        le->setText("lineEdit");

        QVBoxLayout *layout = new QVBoxLayout;
        layout->addWidget(tw);
        setLayout(layout);

        QTimer *timer = new QTimer(this);
        connect(timer, SIGNAL(timeout()), SLOT(test()));
        timer->start(1000);
    }

public slots:
    void test() {
         tw->setCellWidget(0,0,le);
    }
};

#include "debug/main.moc"

int main(int argc, char *argv[]) {
    QApplication app(argc, argv);
    MyClass myClass;
    myClass.show();
    return app.exec();
}
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V  < 1 2
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2024, 12:01