LINUX.ORG.RU

Сообщения jeep

 

mime

jeep
()

QMimeData

jeep
()

[QT] сообщение владельцу объекта

Здравствуйте! Как правильно послать сообщение владельцу объекта? Т.е. допустим у меня есть

namespace Ui
{
    class MainWindow;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
private slots:
    void AddDialog();
    void FinishedDialog(int);
    void AcceptDialog();
    void RejectDialog();
    void HideDialog();


private:
    Dialog* m_dlg;
    Ui::MainWindow *ui;
};
В нем есть m_dlg, в котором кнопка Add. Как ПРАВИЛЬНО передать владельцу объекта m_dlg, что кнопка add нажата? У меня собственно два варианта было: - создать глобальный объект некоторого класса в котором были бы только сигналы и слоты и объект этого класа занимался бы такими ситуациями, когда нужно передать сообщение от объекта к владельцу. - Создать в диалоге функцию getAddButton() которая возвращает указатель на кнопку и в месте где создается объект подсоединить нужный сигнал к нужному слоту. Но чувствую что ни тот ни другой вариант не красивые. Подскажите пожалуйста.

 

jeep
()

[QT] subclassing

Здравствуйте! ДОпустим я в QT Disigner создал виджет QTableWidget. Как бы мне сделать сабклассинг этого виджета. Те я создал дополнительно класс. «CTablePay.h»

#include <QTableWidget>
class QLabel;
class QPushButton;
class QLineEdit;
class TablePay :public QTableWidget{
Q_OBJECT
        public:
        TablePay(QWidget* parent = 0);
        //signals:
        //void HellofromTablePay(const QString&);
        private slots:
        void getHello(const QString&);
        private:
        QString t_str;
};
#endif // CTABLEPAYS_H
CTablePay.cpp
#include <QtGui>
#include "CTablePays.h"

TablePay::TablePay(QWidget* parent)
        :QTableWidget(parent)
{

    t_str="hello,world";
}


void TablePay::getHello(const QString& s)
{
    t_str=s;
}

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui/QMainWindow>
#include "CTablePays.h"
namespace Ui
{
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    Ui::MainWindow *ui;
    QTableWidget* buf_p;
    //TablePay* real_p;
};

#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "CTablePays.h"
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), ui(new Ui::MainWindow),buf_p(new TablePay(ui->buf_pay))//,real_p(&TablePay(ui->real_pay))
{
    ui->setupUi(this);
}

MainWindow::~MainWindow()
{
    delete ui;
}
На главном окне некий виджет QTablePay. Хотелось бы как то сделать так чтобы за место QTableWidget Создавался объект моего класса, который является наследником QTableWidget. Помогите пожалуйста разобраться.

 

jeep
()

multiple definition

Здравствуйте! Я тут с траблом столкнулся и никак не найти хорошего решения. Есть файл base.h в котором хранятся констатнты const char* name = «lalala »; const int i=1; итд сделал base.cpp в котором #include «base.h»

И есть куча других файлов в которые эти могут быть включены . Те понятно что если я включу base.h, то компилятор будет недоволен. И ведь так и есть. Он выводит мне сообщение

/tmp/ccktgfzP.o:(.data+0xc): multiple definition of `pass1'                                                                                             
/tmp/cc89OBJZ.o:(.data+0xc): first defined here                                                                                                         
/tmp/ccktgfzP.o:(.data+0x8): multiple definition of `user1'                                                                                             
/tmp/cc89OBJZ.o:(.data+0x8): first defined here                                                                                                         
/tmp/ccktgfzP.o:(.data+0x4): multiple definition of `server1'
/tmp/cc89OBJZ.o:(.data+0x4): first defined here
/tmp/ccktgfzP.o:(.data+0x0): multiple definition of `db1'
/tmp/cc89OBJZ.o:(.data+0x0): first defined here
/tmp/ccvRK6bo.o:(.data+0x0): multiple definition of `db1'
Вот как с этим вообще бороться? Не хотелось бы в каждом файле определять новые константы или пространство имен лишнее создавать. Ведь можно же как-то сказать компилятору что этот файл один для всего проекта и нечего лишний раз орать при встрече таких то определений.

jeep
()

mysql++ вопрос по с++

Здравствуйте! В общем небольшой тупняк какой-то. lanlib.cpp

#include "../include/lanlib.h"

taccounts get_accounts_inf(const char* db,const char* server,const char* user, const char* pass,int uid){
		mysqlpp::Connection con(db, server, user, pass);
		stringstream q;
			q<<"select \
			uid,\
			login,\
			pass,\
			balance,\
			descr,\
			name,\
			phone,\
			agrm_num,\
			agrm_date,\
			email,\
			bill_delivery,\
			inn,\
			street,\
			bnum,\
			bknum,\
			apart \
			from accounts where uid=";
			q<<uid;
			mysqlpp::Query query = con.query(q.str());
			taccounts res;
			query.storein(res);
			return res;
}
lanlib.h
#ifndef LAN_LIB___USER_AAA
#define LAN_LIB___USER_AAA
#include <mysql++/mysql++.h>
#include "./stock.h"
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
typedef vector<accounts::accounts> taccounts;
//typedef vector<bills::bills> tbills;
taccounts get_accounts_inf(const char*,const char*,const char*, const char*,int);
//tbills get_bills_inf(const char*,const char*,const char*, const char*,int);
#endif //LAN_LIB___USER_AAA

stock.h

#ifndef STOCK_STURCTURE_AAA
#define STOCK_STURCTURE_AAA
#include <mysql++/mysql++.h>
#include <mysql++/ssqls.h>
namespace accounts{
sql_create_18(accounts,
	1, 18, // The meaning of these values is covered in the user manual
	mysqlpp::sql_int, uid,
	mysqlpp::sql_varchar, login,
	mysqlpp::sql_varchar, pass,
	
	mysqlpp::sql_int, type,
	mysqlpp::sql_double, balance,
	mysqlpp::sql_text, descr,
	
	mysqlpp::sql_varchar, name,
	mysqlpp::sql_varchar, phone,
	mysqlpp::sql_varchar, agrm_num,
	
	mysqlpp::sql_varchar, agrm_date,
	mysqlpp::sql_varchar, email,
	mysqlpp::sql_tinyint, bill_delivery,
	
	mysqlpp::sql_varchar, inn,
	mysqlpp::sql_varchar, city,
	mysqlpp::sql_varchar, street,
	
	mysqlpp::sql_varchar, bnum,
	mysqlpp::sql_varchar, bknum,
	mysqlpp::sql_varchar, apart
	)
}
#endif

pay.cpp

#include "../include/stock.h"
#include "../include/lanlib.h"
#include <mysql++/mysql++.h>
#include <iostream>
#include <vector>
#include <string>
#include <sstream>

using namespace std;
int
main(int argc, char *argv[])
{

			
const char* db = "billing", *server = "62.118.130.17", *user = "anton", *pass = "5790";
taccounts res = get_accounts_inf("based","localhost","user","sss",45);
			cout << "We have:" << endl;
		taccounts::iterator it;
        for (it = res.begin(); it != res.end(); ++it) {
            cout << '\t' << it->name;
            cout << " (" << it->uid << ")";
            cout << endl;
        }
return 0;
}
компилирую g++ -I/usr/include/mysql -o./pay ./pay.cpp ./lanlib.cpp -lmysqlpp Получаю ошибки
/tmp/cccwEx2h.o:(.data+0x0): multiple definition of `accounts::accounts::names'
/tmp/ccoGZT4X.o:(.data+0x0): first defined here
/tmp/cccwEx2h.o:(.data+0x48): multiple definition of `accounts::accounts::table_'
/tmp/ccoGZT4X.o:(.data+0x48): first defined here
collect2: выполнение ld завершилось с кодом возврата 1
Чето второй день уже туплю. Помогите пожалуйста.

jeep
()

линковка сишных либ к программе на с++

Есть простой класс использующий ctime. #include <ctime>

using namespace std; class CDate{ time_t dtime; tm timestrct; public: CDate(); //CDate(long int); //CDate(time_t); //string gettime() const; };

int main() { CDate s;

return 0; }

При компиляции g++ по понятным причинам ругаетсо. g++ ./pay.cpp -o pay -lmysqlpp pay.cpp:(.text+0x7c): undefined reference to `CDate::CDate()' collect2: выполнение ld завершилось с кодом возврата 1

Какую либу ему нужно прилинковать чтобы он заткнулся?

jeep
()

cp1251 to utf-8

Здравствуйте! Получаю ответ на запрос из mysql базы в кодировке cp1251. В консоль ответ, естетсвенно вываливается в виде знаков ?. Как бы мне перекодировать ответ из кодировки cp1251 в utf8. Есть ли какие-нибудь простые решения в виде готового кода?

jeep
()

CMI8338 компиляция драйвера

Не могу найти дрова для этой карточки в деб пакете. Нашел только тар архив с cmpci.с cmpci confic.in configure.help readme файлами. Что делать? как его компилировать и куда его пихнуть и как загрузиить? В редми предлагают перекомпилировать ядро. А так не хочется!

jeep
()

error loading library

Здравствуйте! В общем есть прока под которую была написана .so либа. Успешно скомпилирована на своей машине и подгружена нужной программой. После компиляции на другой машине и запуска программы получаю сообщение об ошибке error loading library /usr/local/some/foo/abi.so Как определитть что не так?

jeep
()

Сборщик ядра

Здравствуйте! В общем мне интересно как дистриб линукса собирает информацию о железе и создает ядро при инсталяции с сд диска. Есть ли подобная программа которая могла бы собрать конфиг для ядра?

jeep
()

прилинковать к .so .a файл

Написал либу lalala.so нужно ее сделать максимально статической. В ней используется libmysqlclient хотелось бы ее статически прилинковать к lalala.so . Компилирую так: gcc -fPIC lalala.c -shared -o lalala.so -L/usr/lib/mysql -lmysqlclient -static -lm -lz

Где там ошибка? Как сделать максимально переносимый файл чтобы он все статически прилинковал. Собственно задача такая чтобы запустить его на фряхе.

jeep
()

автопрозвонка+модем zyxel

Здравствуйте! В общем есть модем,обычная телефонная линия. Нужно установить соединение с абонентом и воспроизвести звуковое сообщение. Как бы это нужно как временное решение пока циску 5350 не установили. А потом все на * переведу. Помогите пожалуйста. Возможно под линух уже есть такие утилиты.

jeep
()

RSS подписка на новые темы