Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[3.147.242.22] |
|
Сообщ.
#1
,
|
|
|
1. Написал прогу на Qt v.5.3. При попытке запустить на Linux Mint потребовала библиотеки .SO. Скопировал их в /usr/lib, присвоил им права 777.
Прога запустилась - но интерфейс покорежен (в т.ч. не отображается значок программы, полоски прогрессбаров). Как это исправить? 2. Есть ли возможность обойтись без ручного копирования и присваивания прав под рутом? Только SH-файлом с этими командами из-под рута? Прикреплённый файл__________________________000.png (25,41 Кбайт, скачиваний: 71) Прикреплённый файл_____________________________2022_08_08_10_28_44.png (78,23 Кбайт, скачиваний: 67) |
Сообщ.
#2
,
|
|
|
Сергей85, так дела не делаются! Когда ты делаешь сборку с динамическими либами на одной системе, в процессе сборки подтягиваются местные либы со своими версиями. Причем зависимости могут быть по цепочкам очень длинными. И на 99% они не будут удовлетворяться на другой системе именно так. Выхода два, ну как я вижу:
1) На вторую систему ты переносишь проект и там делаешь сборку - это самый простой вариант 2) На первой системе ты делаешь сборку Qt со статической линковкой, потом статически линкуешь и свою программу - это самый геморройный вариант Ну и напоследок. Судя по прикрепленным изображениям, у меня закрадывается мысль, что ты не совсем корректно разместил управляющие элементы на главном окне твоей проги. Но это только предположение, увидеть бы исходный код. И еще ... глянь эту статью, возможно ты найдешь своему времени более полезное применение. |
Сообщ.
#3
,
|
|
|
Цитата Majestio @ Автор: Russell James. Отечественное ПО нужно. А так, полно их: зерофри и т.д. |
Сообщ.
#4
,
|
|
|
Или Wei-Lun Chao, неточно.
|
Сообщ.
#5
,
|
|
|
Цитата Сергей85 @ Или Wei-Lun Chao, неточно. Немного не догоняю Это ты о чем? |
Сообщ.
#6
,
|
|
|
Цитата Majestio @ Об имени автора diskscrub. В любом случае, иностранщина. |
Сообщ.
#7
,
|
|
|
Я до сих пор так и не понял зачем столько усилий. Наверное после прикола с dd он ее начал бояться. Но ведь то, что он пытается изобразить можно сделать как раз той самой командой
sudo dd if=/dev/zero bs=512 of=./zero.tmp || rm -f ./zero.tmp sudo dd if=/dev/zero bs=1048576 of=./zero.meg || sudo dd if=/dev/zero bs=512 of=./zero.sec || rm -f ./zero.sec || rm -f ./zero.meg |
Сообщ.
#8
,
|
|
|
Цитата macomics @ Я до сих пор так и не понял зачем столько усилий. Цитата Сергей85 @ Отечественное ПО нужно. Добавлено Цитата Сергей85 @ В любом случае, иностранщина. Ну да, если scrub, то автор, да - интурист. Jim Garlick garlick@llnl.gov Добавлено Цитата macomics @ Я до сих пор так и не понял зачем столько усилий. Как по мне, так я тоже пользую scrub - просто удобно. Типа: e4defrag /dev/sda3 scrub -X /root/scrub -p fillzero shutdown -Ph now Потом закрываю VMWare и делаю архив файлов каталога установленной виртуальной машины. Зануление свободного пространства позволяет значительно сократить результирующий размер архива. |
Сообщ.
#9
,
|
|
|
Интерфейс рушился из-за того, что размеры формы нужно было указать не только на форме, но и в CentralWidget. Qt 5.3 - забагованное г.
|
Сообщ.
#10
,
|
|
|
Так садитесь писать отечественный менеджер окон.
|
Сообщ.
#11
,
|
|
|
Цитата Сергей85 @ Интерфейс рушился из-за того, что размеры формы нужно было указать не только на форме, но и в CentralWidget. Qt 5.3 - забагованное г. Сергей, судя по скринам, тебе вообще не нужно было использовать QMainWindow в качестве класса окна - хватило бы вполне QDialog. И никаких UI-форм, ибо такой интерфейс в конструкторе пишется руками за 15-20 мин. И все работает не как "забагованное г.", а как "незабагованное" Не поленился, вот тебе для примера: Основной файл, где мы размещаем управляющие элементы dialog.cpp: #include "dialog.h" Dialog::Dialog(QWidget *parent) : QDialog(parent) { // Размещатель QGridLayout *L = new QGridLayout; // Кнопки QPushButton *B1 = new QPushButton(tr("Занулить свободное место в выбранном разделе")); QPushButton *B2 = new QPushButton(tr("Лицензионное соглашение")); QPushButton *B3 = new QPushButton(tr("Справка")); // Комбобокс QComboBox *C = new QComboBox; C->addItems(QStringList() << "/dev/sdb6 -- /hards/other"); // Текстовые метки QLabel *T1 = new QLabel(tr("Создание файла для зануления")); QLabel *T2 = new QLabel(tr("Копий файлов зануления")); QLabel *T3 = new QLabel(tr("ГОТОВО")); QLabel *T4 = new QLabel(tr("Общий итог")); // Полосы прогресса QProgressBar *P1 = new QProgressBar; QProgressBar *P2 = new QProgressBar; // Размещаем элемены управления в размещателе L->addWidget(B1,0,0,1,2); L->addWidget(C,1,0,1,2); L->addWidget(T1,2,0,1,2, Qt::AlignCenter); L->addWidget(P1,3,0,1,2); L->addWidget(T2,4,0,1,2, Qt::AlignCenter); L->addWidget(T3,5,0,1,2, Qt::AlignCenter); L->addWidget(T4,6,0,1,2, Qt::AlignCenter); L->addWidget(P2,7,0,1,2); L->addWidget(B2,8,0,1,1); L->addWidget(B3,8,1,1,1); // Прописываем размещатель в качестве основного setLayout(L); // Окно будет создано с минимально-доступным размером resize(0,0); } Dialog::~Dialog() { } Остальные файлы можно найти в прикрепленном архиве проекта. Некоторые замечания: Прикреплённый файлSimpleLayout.tar.bz2 (1,45 Кбайт, скачиваний: 43) |