1. Есть Gui приложение на qt необходимо в одну из областей программы вставить bash терминал, как это реалезовать?
2. Есть кнопка которая просто выполняет комунду ifconfig как можно перенаправить вывод команды в ещё одну область в gui приложении?
ide qt creator
qt для чайников (два вопроса)
Модератор: Модераторы разделов
-
- Сообщения: 183
- Статус: Еще один красноглазик
qt для чайников
AMD Athlon 3200+ 2.Ghz, RAM 1g, I/Video, 80g IDE
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
-
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
-
- Сообщения: 183
- Статус: Еще один красноглазик
Re: qt для чайников
1. Мало что понятно добавил файлы в проект, как хотя бы вызвать ту консоль?
2. погуглил пробовал так:
void MainWindow::on_pushButton_10_clicked()
{
system("ifconfig");
console = new QProcess;
console->readAllStandardOutput();
std::cout << arr.data();
// editor объявлен как QTextEdit *editor;
QTextEdit ->insertPlainText( arr.data() );
}
..
все что нужно перехватать вывод ifconfig и вывести его в QTextEdit или что то в этом роде
гуглю дальше..
p.s. qt увидел только вчера, впервые
AMD Athlon 3200+ 2.Ghz, RAM 1g, I/Video, 80g IDE
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: qt для чайников
Нехороший, но краткий способ:
Нехороший, потому что нельзя делать такое в GUI потоке - затормозите пока не выполнится дочерний процесс.
Правильнее где-то так:
PS
Код: Выделить всё
QProcess ip;
ip.start("ip", QStringList("a"));
if( ip.waitForFinished() ) {
ui->plainTextEdit->setPlainText( QTextCodec::codecForLocale()->toUnicode( ip.readAll() ) );
} else {
ui->plainTextEdit->setPlainText( ip.errorString() );
}
Нехороший, потому что нельзя делать такое в GUI потоке - затормозите пока не выполнится дочерний процесс.
Правильнее где-то так:
Код: Выделить всё
void MainWindow::on_pushButton_clicked()
{
if( ip ) {
ip->disconnect();
delete [] ip;
}
ip = new QProcess();
connect( ip, SIGNAL(readyRead()), SLOT(on_ip_readyRead()) );
ui->plainTextEdit->setPlainText( QString() );
ip->start("ip", QStringList("a"));
}
void MainWindow::on_ip_readyRead()
{
ui->plainTextEdit->appendPlainText( QTextCodec::codecForLocale()->toUnicode( ip->readAll() ) );
}
PS
Код: Выделить всё
private slots:
void on_pushButton_clicked();
void on_ip_readyRead();
private:
QProcess* ip;
-
- Сообщения: 862
- Статус: Адепт Дзен.
- ОС: Mint, Win7.
Re: qt для чайников
Думаю, что как обычный виджет Qt.
Еще вариант www.crossplatform.ru/node/566
Правда его надо немножко допилить.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Desipere in loco
-
- Сообщения: 183
- Статус: Еще один красноглазик
Re: qt для чайников
Не могу запустить написанную программу на других Linux системах, на родной Ubuntu собираю программу Ctrl + Shift + B захожу в директория программы (test-build-desktopтам) лежит бинарный файл test, все запускается и прекрасно работает перенашу этот бинарник на виртуальную машину с Lubuntu запускаю программу и получаю:
$./test
bash: не удается запустить двоичный файл
Делаю sudo chmod 777 test, пробую еще раз и получаю тоже самое из под рута тоже самое, в чем причина?
Update
Совсем забыл что у меня Ubuntu 64 битная а Lubuntu в вертуалке 32 битная это наверное тоже важно...
$./test
bash: не удается запустить двоичный файл
Делаю sudo chmod 777 test, пробую еще раз и получаю тоже самое из под рута тоже самое, в чем причина?
Update
Совсем забыл что у меня Ubuntu 64 битная а Lubuntu в вертуалке 32 битная это наверное тоже важно...
AMD Athlon 3200+ 2.Ghz, RAM 1g, I/Video, 80g IDE
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: qt для чайников
Код: Выделить всё
readelf -d test | grep NEEDED
И смотрите каких библиотек не хватает на той системе, поставьте недостающие пакеты.
Спасибо сказали:
-
- Сообщения: 183
- Статус: Еще один красноглазик
Re: qt для чайников
NickLion писал(а): ↑08.05.2011 23:56Код: Выделить всё
readelf -d test | grep NEEDED
И смотрите каких библиотек не хватает на той системе, поставьте недостающие пакеты.
Спасибо помогло.
Тоже сам тупонул архитектура то разная, поставил в виртуалку Ubuntu 64-битную и недостающие библиотеки все отлично работает!

Еще вопрос возможно ли откомпилировать программу в 64 битной ОС для 32 битной?
AMD Athlon 3200+ 2.Ghz, RAM 1g, I/Video, 80g IDE
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: qt для чайников
Да, в таком направлении нет проблем:
g++ -m32
а всё остальное как обычно. Но соответственно dev пакеты 32-х битные должны стоять. Те же libstdc++, libqt4 и т.д.
В обратном направлении (на 32 бита собрать 64) будет сложнее - обычно в 32битных дистрах GCC без поддержки сборки 64 бит.
-
- Сообщения: 183
- Статус: Еще один красноглазик
Re: qt для чайников
NickLion писал(а): ↑09.05.2011 10:15
Да, в таком направлении нет проблем:
g++ -m32
а всё остальное как обычно. Но соответственно dev пакеты 32-х битные должны стоять. Те же libstdc++, libqt4 и т.д.
В обратном направлении (на 32 бита собрать 64) будет сложнее - обычно в 32битных дистрах GCC без поддержки сборки 64 бит.
Очень хорошо только гда бы этот пораметр добавить в Qt creator?
Что бы из IDE можно было выбрать под что компилить под 86 или 64.
По идее где то тут:


Только не получается выбрать в меню инструментарий вместо GCC 64bit GCC 32bit...
AMD Athlon 3200+ 2.Ghz, RAM 1g, I/Video, 80g IDE
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
Intel Dual-Core E5300 2.6 GHz RAM 4 GB DDR2, NVIDIA GeForce 7600 GS 256 MB, HDD 320 GB IDE
Intel i3 3.4 GHz, RAM 4 GB DDR3, NVIDIA GeForce 220 GT 512 MB, HDD 500 GB SATA2
Блог: http://admi0n.blogspot.com/
-
- Сообщения: 3408
- Статус: аватар-невидимка
- ОС: openSUSE Tumbleweed x86_64
Re: qt для чайников
Думается, сначала нужно установить qt dev пакеты для 32-х бит.