Russian Qt Forum
Ноябрь 05, 2024, 13:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 ... 9 10 [11] 12   Вниз
  Печать  
Автор Тема: Помогите новичку (совсем новичку)  (Прочитано 85123 раз)
gmorgunov
Гость
« Ответ #150 : Декабрь 30, 2009, 11:34 »

Den2009. Поменяйте в файле proga1_about.ui сигнал pressed() на clicked(), либо
triggered() , потому что pressed():
Цитировать
void QAbstractButton::pressed ()   [signal]
This signal is emitted when the button is pressed down.

See also released() and clicked().
Видимо идет 2 event-a , когда нажимаете и когда отпускаете.
proga1_about.ui
Код:
...
<sender>pushButton</sender>
   <signal>clicked()</signal>
Проверил, для about пишется 1 раз.
« Последнее редактирование: Декабрь 30, 2009, 11:40 от gmorgunov » Записан
Den2009
Гость
« Ответ #151 : Декабрь 30, 2009, 12:56 »

спс, помогло... видать действительно 2 раза event был...

как этому присваивать значение по-другому? хочу сделать, чтоб в зависимости от выбранного языка грузился html с разных папок
Код:
    HelpBrowser* helpbrowser = new HelpBrowser("doc", "./help/index.html");
т.е. if (xxx = true) {
грузим отсюда }
if (xxx = false) {
грузим с другого места }
булеву переменную я объявил..

« Последнее редактирование: Декабрь 30, 2009, 13:05 от Den2009 » Записан
gmorgunov
Гость
« Ответ #152 : Декабрь 30, 2009, 19:27 »

Пропишите переменную helpbrowser, и работайте с ней:
proga1_h
Код:
...
#include "proga1_helpbrowser.h"
class MainWindow : public QMainWindow, Ui::MainWindow
{
    Q_OBJECT
public:
    HelpBrowser *helpbrowser;
    bool english; // english - true, russian - false
    int iS, oS, oM, oH;
    QTranslator* translator;
    QFile* file;
    QTextEdit * textInput;
    QDockWidget *dockWidget;
    MainWindow(QMainWindow* p = 0) : QMainWindow(p)
    {
        english = false;
...
proga1.cpp
Код:
...
void MainWindow::helpBrowser()
{
    this->setWindowModality(Qt::NonModal);
         
    if (english)
    {
        helpbrowser   = new HelpBrowser("C:\\Pr1", "log.txt");
    }
    else
        helpbrowser   = new HelpBrowser("C:\\Pr1", "eng.ts");
...
Записан
Den2009
Гость
« Ответ #153 : Декабрь 30, 2009, 21:35 »

вобщем, требуется открывать лог по нажатию кнопки... интересует не сам процесс, а как написать, что лог надо открывать программой по умолчанию для просмотра txt (например, блокнотом)
Записан
Dendy
Гость
« Ответ #154 : Декабрь 30, 2009, 21:39 »

QDesktopServices::openUrl()
Записан
Den2009
Гость
« Ответ #155 : Декабрь 31, 2009, 02:28 »

как все просто оказалось... даже странно, что заработало с первого раза  Смеющийся
« Последнее редактирование: Январь 05, 2010, 02:42 от Den2009 » Записан
Den2009
Гость
« Ответ #156 : Январь 05, 2010, 02:48 »

Код:
{
QString textrep = textInput->toPlainText();
textrep.replace("1", " 1 in the Morze code is .---- \r\n");
textrep.replace("2", " 2 in the Morze code is ..--- \r\n");
textrep.replace("3", " 3 in the Morze code is ...-- \r\n");
textrep.replace("4", " 4 in the Morze code is ....- \r\n");
textrep.replace("5", " 5 in the Morze code is ..... \r\n");
textrep.replace("6", " 6 in the Morze code is -.... \r\n");
textrep.replace("7", " 7 in the Morze code is --... \r\n");
textrep.replace("8", " 8 in the Morze code is ---.. \r\n");
textrep.replace("9", " 9 in the Morze code is ----. \r\n");
textrep.replace("0", " 0 in the Morze code is ----- \r\n");
textOutput->setPlainText(textrep);
}
подскажите, пожалуйста, как сделать:
1.
Код:
" 2 in the Morze code is ..--- \r\n"
этот текст другого цвета
2. как сюда вставить счетчик количества проведенных замен
3. как сделать, чтобы эта строка
Код:
"  in the Morze code is "
выводилась на языке приложения
делал так:
Код:
textrep.replace("1", tr(" 1 in the Morze code is .---- \r\n"));
но, каждый раз, открывая файл перевода, она оказывается непереведенной...
я думаю, что сюда надо вставить константу, пробовал сделать так:
Код:
QString str2 = tr(" in the Morze code is ");
textrep.replace("1", " 1" << str2 << ".---- \r\n");
но компилятор ругается:
Код:
C:/Pr2/proga2.cpp:12: error: no match for 'operator<<' in '" 1" << str2'
Записан
niXman
Гость
« Ответ #157 : Январь 05, 2010, 02:58 »

Код
C++ (Qt)
textrep.replace("1", " 1" + str2 + ".---- \r\n");
 
Записан
Den2009
Гость
« Ответ #158 : Январь 05, 2010, 03:55 »

помогло... теперь осталось 2 пункта...
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #159 : Январь 05, 2010, 04:17 »

помогло... теперь осталось 2 пункта...

за два месяца хождений по мукам и изучения языка и Qt методом тыка, можно было бы самостоятельно изучить язык хотя бы на среднем уровне, и неплохо разобраться в Qt, благо документация есть, и даже онлайн журнал.
« Последнее редактирование: Январь 05, 2010, 04:43 от Alex Custov » Записан
Den2009
Гость
« Ответ #160 : Январь 05, 2010, 14:41 »

как под линуксом сделать открывание лога в текстовом редакторе??
Код:
void MainWindow::logFile()

    QDesktopServices::openUrl(QUrl::fromLocalFile(QApplication::applicationDirPath()+"./log.txt"));
}
такой код не работает... собирается все без ошибок, но при нажатии на кнопку лог не открывается
Записан
BRE
Гость
« Ответ #161 : Январь 05, 2010, 14:46 »

Код
C++ (Qt)
void MainWindow::logFile()
{  
   QDesktopServices::openUrl(QUrl::fromLocalFile(QApplication::applicationDirPath()+"/log.txt"));
}
 
Записан
Den2009
Гость
« Ответ #162 : Январь 05, 2010, 19:11 »

хочу, чтоб приложение при запуске было на русском языке, делаю так:
Код:
#include <QApplication>
#include <QTPlugin>
#include <QTGui>
#include <QTranslator>
#include <QtCore>

 Q_IMPORT_PLUGIN(qjpeg)
 Q_IMPORT_PLUGIN(qgif)
 Q_IMPORT_PLUGIN(qkrcodecs)

#include "proga1.h"

 int main (int argc, char **argv)
 {
     QApplication app(argc, argv);

     MainWindow w;

     QTranslator *translator = new QTranslator;
     qApp->removeTranslator(translator);
     translator->load("./eng.qm", ".");
     qApp->installTranslator(translator);
     retranslateUi(w);

     w.show();
     return app.exec();
 }
но компилятор выдает ошибку:
Код:
C:/Pr1/main.cpp:53: error: 'retranslateUi' was not declared in this scope
в чем причина?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #163 : Январь 05, 2010, 19:29 »

в чем причина?

в том, что писать программы методом тыка не самая лучшая идея
Записан
gmorgunov
Гость
« Ответ #164 : Январь 05, 2010, 21:25 »

Один из вариантов сделать сразу по-русски:
main.cpp
Код:
...
     MainWindow w ;
     QTranslator *translator = new QTranslator;
     translator->load("eng.qm", "C:\\Pr1");
     qApp->installTranslator(translator);
     w.myRetranslateUi();
proga1.h
Код:
...
    void logFile();
    void closeEvent(QCloseEvent *event);
    void myRetranslateUi();
proga1.cpp
Код:
...
void MainWindow::myRetranslateUi()
{
    retranslateUi(this);
}

Записан
Страниц: 1 ... 9 10 [11] 12   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.179 секунд. Запросов: 23.