Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Qt
Войти
Регистрация
Восстановить пароль
 
alishiitu
0 / 0 / 0
Регистрация: 28.09.2014
Сообщений: 20
1

Ошибка при описании connect-a

13.05.2015, 07:33. Просмотров 295. Ответов 2
Метки нет (Все метки)

Здравствуйте!
Совсем недавно начал изучать QT.
Здесь такая проблема - я хотел, чтобы по нажатии кнопки SpendMoney а затем "Enter Data" передавалось название, а также введенные в поле данные. Все делал в одном файле, так как не получалось в разных. Посмотрите пожалуйста, как можно решить эту проблему? Заранее признателен и буду рад альтернативным предложениям


C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <QtGui>
#include<QWidget>
#include<QRadioButton>
class A : public QWidget{
public:
    A(){
 
    }
 
public slots:
    void setData(QString number,QString categ){
        QString filename="c: /Data.txt";
        QFile file( filename );
        if ( file.open(QIODevice::ReadWrite) )
        {
            QTextStream stream( &file );
            stream << number << "  " << categ << endl;
        }
    }
};
 
 
int main(int argc, char **argv)
{   A *l;
    QApplication app(argc, argv);
    QWidget window;
    QWidget zatrati;
        zatrati.setFixedSize(590,341);
 
    QWidget statistic;
    statistic.setFixedSize(590,341);
    QWidget spendMoney;
    spendMoney.setFixedSize(590,341);
 
    QWidget earn;
    earn.setFixedSize(590,341);
 
    QPushButton spend("Spend Money", &window);
    QPushButton earnMoney("Earn Money", &window);
    QPushButton show("Show Statistics", &window);
    QPushButton quitButton("Quit", &window);
 
 
    QWidget * place = new QWidget;
    place->setFixedSize(300,200);
 
    QPalette palette;
    palette.setBrush(window.backgroundRole(), QBrush(QImage("image.jpg")));
        window.setPalette(palette);
    QLabel bb("<b>Choose the action:\n</b>");
    QLabel name("<b><u>Finance Manager 1.0</u></b>", &window);
    bb.setStyleSheet("QLabel{color: white;}");
    name.setStyleSheet("QLabel{color: white;}");
    name.setGeometry(0,5,1,1);
    name.setAlignment(Qt::AlignBottom);
    bb.setAlignment(Qt::AlignLeft);
    window.setFixedSize(590,341);
 
    QVBoxLayout *layout = new QVBoxLayout(&window);
     layout->addWidget(&bb);
     layout->addWidget(&spend);
     layout->addWidget(&earnMoney);
     layout->addWidget(&show);
     layout->addWidget(&quitButton);
     layout->addWidget(place);
     layout->addWidget(&name);
 
 
     QLabel nadpis("<b>Choose the category:</b>");
     QLabel balans("<b>Balance: \n</b>");
 
     QRadioButton *razvlechenie = new QRadioButton ("razvlechenie");
     QRadioButton *komuslugi = new QRadioButton ("kom uslugi");
     QRadioButton *transport  = new QRadioButton ("transport");
     QRadioButton *eda = new QRadioButton ("eda");
     QRadioButton *odejda = new QRadioButton ("odejda");
     QRadioButton *medicina = new QRadioButton ("medicina");
     QRadioButton *sport = new QRadioButton ("sport");
     QRadioButton *internet = new QRadioButton ("internet");
     QRadioButton *drugoe = new QRadioButton ("drugoe");
     QPushButton *mainmenu = new QPushButton ("Go to Main Menu");
     QPushButton *enterData = new QPushButton("Enter Data");
     QString categ = " ";
    if(razvlechenie->isChecked())
         categ = "razvlechenie";
     else if(komuslugi->isChecked())
         categ = "komuslugi";
     else if(transport->isChecked())
         categ = "transport";
     else if(eda->isChecked())
         categ = "eda";
     else if(odejda->isChecked())
         categ = "odejda";
     else if(medicina->isChecked())
         categ = "medicina";
     else if(sport->isChecked())
         categ = "sport";
     else if(internet->isChecked())
         categ = "internet";
     else if(drugoe->isChecked())
         categ = "drugoe";
     QLineEdit *line = new QLineEdit;
        QString num = line->text();
 
     nadpis.setAlignment(Qt::AlignHCenter);
     balans.setAlignment(Qt::AlignTop|Qt::AlignRight);
     line->setGeometry(450, 340, 100, 30);
 
     QGridLayout *layout1 = new QGridLayout(&spendMoney);
     layout1->addWidget(&nadpis,1,0);
     layout1->addWidget(&balans,1,1);
     layout1->addWidget(razvlechenie,2,0);
     layout1->addWidget(transport,3,0);
     layout1->addWidget(komuslugi,4,0);
     layout1->addWidget(eda, 5, 0);
     layout1->addWidget(odejda,6,0);
     layout1->addWidget(medicina,7,0);
     layout1->addWidget(sport,8,0);
     layout1->addWidget(internet,10,0);
     layout1->addWidget(drugoe,11,0);
     layout1->addWidget(line,12,0);
     layout1->addWidget(enterData,12,1);
     layout1->addWidget(mainmenu,13,0);
 
 
 
     QObject::connect(enterData, SIGNAL(clicked()),l, SLOT(setData(num, categ)));
     QObject::connect(&quitButton, SIGNAL(clicked()),&window, SLOT(close()));
     QObject::connect(&spend, SIGNAL(clicked()),&spendMoney, SLOT(show()));
     QObject::connect(&earnMoney, SIGNAL(clicked()),&earn, SLOT(show()));
     QObject::connect(&show, SIGNAL(clicked()),&statistic, SLOT(show()));
     QObject::connect(mainmenu, SIGNAL(clicked()),&spendMoney, SLOT(close()));
 
     palette.setBrush(spendMoney.backgroundRole(), QBrush(QImage("spend.jpg")));
         spendMoney.setPalette(palette);
 
 
    window.show();
    return app.exec();
}
Добавлено через 35 секунд
ошибка на 127 строке
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.05.2015, 07:33
Ответы с готовыми решениями:

ошибка при connect()
Привет. Я бы хотел что бы при нажатии на пункт меню m_system_action...

Ошибка при connect
Доброй ночи. Использую VS2010(Ultimate) + Qt libraries 4.8.3 for Windows (VS...

Ошибка в connect
Нужно, чтобы при нажатии на кнопку срабатывал метод класса Acceleration. Однако...

Ошибка вызова connect
В файле main не могу вызвать SIGNAL как мне его согласовать? вель прописал в...

QObject::connect - ошибка
int main(int argc, char *argv) { QApplication a(argc, argv); QWidget...

2
alexey_rage
591 / 391 / 79
Регистрация: 23.10.2013
Сообщений: 1,143
13.05.2015, 07:59 2
Хоть бы написал какая ошибка!
Думаешь одни экстрасенсы здесь сидят?

У тебя не создан объект класса A по указателю *l
Нужно изменить строку 24
C++ (Qt)
1
A *l = new A();
1
Воротислав
125 / 103 / 27
Регистрация: 25.02.2010
Сообщений: 451
13.05.2015, 08:21 3
День добрый. Насколько я помню, нельзя чтоб в слоте было больше параметров чем в сигнале.
2
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2015, 08:21

Ошибка с использованием QObject::connect
Написал программу, но она выдаёт ошибку из-за QObject::connect. window.h ...

Ошибка Object::connect: No such slot
arraydata.h #ifndef ARRAYDATA_H #define ARRAYDATA_H #include &lt;QObject&gt;...

Ошибка с connect 'QObject' is an inaccessible base of 'Click'
не могу приконектить, выдает ошибку ошибка: 'QObject' is an inaccessible...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru