На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила трёх "С"
Пожалуйста,
1. Соблюдайте правила Форума.
2. Слушайте советы Модераторов.
(например, http://forum.sources.ru/index.php?act=ST&f=7&t=80382 )
3. Сверяйтесь с учебником по Великому и Могучему
  
> Миграция исполняемого файла с Astra Linux SE v.1.4 в Linux Mint v.19.3.
    1. Написал прогу на Qt v.5.3. При попытке запустить на Linux Mint потребовала библиотеки .SO. Скопировал их в /usr/lib, присвоил им права 777.
    Прога запустилась - но интерфейс покорежен (в т.ч. не отображается значок программы, полоски прогрессбаров). Как это исправить?



    2. Есть ли возможность обойтись без ручного копирования и присваивания прав под рутом? Только SH-файлом с этими командами из-под рута?

    Прикреплённый файлПрикреплённый файл__________________________000.png (25,41 Кбайт, скачиваний: 51)

    Прикреплённый файлПрикреплённый файл_____________________________2022_08_08_10_28_44.png (78,23 Кбайт, скачиваний: 47)
    Сообщение отредактировано: Сергей85 -
      Сергей85, так дела не делаются! Когда ты делаешь сборку с динамическими либами на одной системе, в процессе сборки подтягиваются местные либы со своими версиями. Причем зависимости могут быть по цепочкам очень длинными. И на 99% они не будут удовлетворяться на другой системе именно так. Выхода два, ну как я вижу:

      1) На вторую систему ты переносишь проект и там делаешь сборку - это самый простой вариант
      2) На первой системе ты делаешь сборку Qt со статической линковкой, потом статически линкуешь и свою программу - это самый геморройный вариант

      Ну и напоследок. Судя по прикрепленным изображениям, у меня закрадывается мысль, что ты не совсем корректно разместил управляющие элементы на главном окне твоей проги. Но это только предположение, увидеть бы исходный код.
      И еще ... глянь эту статью, возможно ты найдешь своему времени более полезное применение.
        Цитата Majestio @

        Автор: Russell James.

        Отечественное ПО нужно. А так, полно их: зерофри и т.д.
          Или Wei-Lun Chao, неточно.
            Цитата Сергей85 @
            Или Wei-Lun Chao, неточно.

            Немного не догоняю :) Это ты о чем?
              Цитата Majestio @

              Об имени автора diskscrub. В любом случае, иностранщина.
                Я до сих пор так и не понял зачем столько усилий. Наверное после прикола с dd он ее начал бояться. Но ведь то, что он пытается изобразить можно сделать как раз той самой командой
                ExpandedWrap disabled
                  sudo dd if=/dev/zero bs=512 of=./zero.tmp || rm -f ./zero.tmp
                Возможно для ускорения можно разбить на два файла
                ExpandedWrap disabled
                  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
                  Цитата macomics @
                  Я до сих пор так и не понял зачем столько усилий.

                  Цитата Сергей85 @
                  Отечественное ПО нужно.

                  :)

                  Добавлено
                  Цитата Сергей85 @
                  В любом случае, иностранщина.

                  Ну да, если scrub, то автор, да - интурист. Jim Garlick garlick@llnl.gov

                  Добавлено
                  Цитата macomics @
                  Я до сих пор так и не понял зачем столько усилий.

                  Как по мне, так я тоже пользую scrub - просто удобно. Типа:
                  ExpandedWrap disabled
                    e4defrag /dev/sda3
                    scrub -X /root/scrub -p fillzero
                    shutdown -Ph now

                  Потом закрываю VMWare и делаю архив файлов каталога установленной виртуальной машины.
                  Зануление свободного пространства позволяет значительно сократить результирующий размер архива.
                    Интерфейс рушился из-за того, что размеры формы нужно было указать не только на форме, но и в CentralWidget. Qt 5.3 - забагованное г.
                      Так садитесь писать отечественный менеджер окон.
                        Цитата Сергей85 @
                        Интерфейс рушился из-за того, что размеры формы нужно было указать не только на форме, но и в CentralWidget. Qt 5.3 - забагованное г.

                        Сергей, судя по скринам, тебе вообще не нужно было использовать QMainWindow в качестве класса окна - хватило бы вполне QDialog. И никаких UI-форм, ибо такой интерфейс в конструкторе пишется руками за 15-20 мин. И все работает не как "забагованное г.", а как "незабагованное" :lol:

                        Не поленился, вот тебе для примера:

                        user posted image

                        Основной файл, где мы размещаем управляющие элементы dialog.cpp:

                        ExpandedWrap disabled
                          #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() {
                          }

                        Остальные файлы можно найти в прикрепленном архиве проекта.

                        Некоторые замечания:

                        • По коду видно, что я явно не указываю родителей для создаваемых элементов. Это частое заблуждение даже, считающих себя гуру, спецов, что мол будет утечка памяти. Просто нужно внимательнее читать документацию! В моменты addWidget и setLayout фрэймворк Qt самостоятельно прописывает родителя;
                        • Это только пример размещения. Для реального проекта - управляющие элементы, с которыми будут связаны действия - нужно объявлять членами класса, а в конструкторе только инициализировать;
                        • Этот проект я тестил под версией Qt 5.15.3. Более старой версии под рукой нет. Но я уверен, что и с 5.3 будет все по фэн-шую.


                        Прикреплённый файлПрикреплённый файлSimpleLayout.tar.bz2 (1,45 Кбайт, скачиваний: 33)
                        0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                        0 пользователей:


                        Рейтинг@Mail.ru
                        [ Script execution time: 0,0355 ]   [ 19 queries used ]   [ Generated: 19.03.24, 11:23 GMT ]