crossplatform.ru

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


  Ответ в Передача параметров в слот!
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
rezor Дата 28.7.2010, 18:04
 
Цитата(kibsoft @ 28.7.2010, 17:48) *
private slots:
                void appendixWWW( QStandardItem *parentItem);

Сделай слот пабликом и передавай туда свой item, либо через сигналы, либо прямым вызовом слота.
В MainWindow помести указатель на объект класса QFrame_WWW и через него будешь вызывать слот.

Все спасибо тупанул не надо было переопределять класс.
kibsoft Дата 28.7.2010, 16:48
 
private slots:
                void appendixWWW( QStandardItem *parentItem);

Сделай слот пабликом и передавай туда свой item, либо через сигналы, либо прямым вызовом слота.
В MainWindow помести указатель на объект класса QFrame_WWW и через него будешь вызывать слот.
rezor Дата 28.7.2010, 16:13
  Если все определить в одном классе то работает нормально
// parentItem и  childItem определены в MainWindow
// Добавление потомка в категорию
void MainWindow::appendixWWW(const QModelIndex&)
{
qDebug()<<"Slot activ";
    childItem = new QStandardItem();
    childItem->setText(linkWWW->text());
    parentItem->setChild(0,childItem);
}
//Добавление категории в модель
void MainWindow::appendixCategory()
{
    parentItem = new QStandardItem();
    parentItem->setText(nameCategory->text());
    model->setItem(model->rowCount(),0, parentItem);
}

но я потом переопределяю QFrame и надо организовать передачу параметром между классами
rezor Дата 27.7.2010, 19:39
 
Цитата(kibsoft @ 27.7.2010, 19:50) *
Цитата
Прямое использование MainWindow().parentItem вызывает экстренное завершение программы.

Ты уверен, что ты выделил память под parentItem?

parentItem нужен локальный определить его внутри слота не работает.
С начала добавляю категорию , а потом к этому же parentItem добавляю потомка.
// Добавление потомка в категорию
void QFrame_WWW::appendixWWW( QStandardItem *parentItem)
{
    QStandardItem *childItem;    
    qDebug()<<"Slot activ";
    childItem = new QStandardItem();    
    childItem->setText("TEST");
    parentItem->setChild(0,childItem);

}
//Добавление категории в модель
void MainWindow::appendixCategory()
{
    QStandardItem *parentItem;
    parentItem = new QStandardItem();
    parentItem->setText(nameCategory->text());
    model->setItem(model->rowCount(),0, parentItem);
}

kibsoft Дата 27.7.2010, 18:50
 
Цитата
Прямое использование MainWindow().parentItem вызывает экстренное завершение программы.

Ты уверен, что ты выделил память под parentItem?
rezor Дата 27.7.2010, 18:00
  Есть два класса

class QFrame_WWW : public QFrame
{
                Q_OBJECT
        public:              

                QFrame_WWW *messAdd_www;   //Форма добавления ссылки
                QFrame_WWW *categoryAdd;  // Форма добавления категории
                QLineEdit *linkWWW;


  
        private slots:
                void appendixWWW( QStandardItem *parentItem);


};

class MainWindow : public QMainWindow {
    Q_OBJECT
public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
QStandardItemModel *model;
QStandardItem *parentItem;
protected:
    void changeEvent(QEvent *e);


private:
    Ui::MainWindow *ui;

    QPushButton *addCategory;
    QPushButton *closeCategory;
    QPushButton *addButton;
    QPushButton *closeButton;

    QLineEdit *nameCategory;




private slots:
    void on_tabWidget_currentChanged(QWidget* );
    void on_pushButton_2_clicked();
    void on_pushButton_clicked();
    void addInFile();
    void readFile(const QDomNode& );
    void appendixCategory();
    void addChild(const QItemSelection&,const QItemSelection&);


};

И второй класс MainWindow где определен QStandardItem *parentItem как его передать в void appendixWWW( QStandardItem *parentItem)
который определен в class QFrame_WWW .
Прямое использование MainWindow().parentItem вызывает экстренное завершение программы.
Может переопределить сигнал clicked(), как поступить??
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 28.3.2024, 20:51