Russian Qt Forum

Qt => Вопросы новичков => Тема начата: qwyllum от Ноябрь 30, 2012, 13:54



Название: Как вывести системную информацию
Отправлено: qwyllum от Ноябрь 30, 2012, 13:54
Здравствуйте. В QT я новичок, только начали изучать в университете. Нам задали задание - написать программу, которая выводила бы информацию о системе - имя процессора, количество ядер, объем ОЗУ, название материнской платы. Я умею делать простейший вывод на форму, осталось только получить эту информацию. Поиск гуглом по фразам "QT Creator вывести системную информацию" "QT Creator вывести информацию о процессоре ничего не дал". Помогите пожалуйста, куда мне копать?

Заранее спасибо)


Название: Re: Как вывести системную информацию
Отправлено: Bepec от Ноябрь 30, 2012, 14:09
Гугл winApi пример С++ получить информацию об устройствах.


Название: Re: Как вывести системную информацию
Отправлено: maint от Ноябрь 30, 2012, 14:14
при чем тут qtcreator ? Это только IDE. Информацию в винде можно получить через winAPI или через WMI


Название: Re: Как вывести системную информацию
Отправлено: Kurles от Ноябрь 30, 2012, 14:18
неправильный запрос в гугл просто использовался у  тебя, правильный - "get system info winapi" или подобный для линукса )


Название: Re: Как вывести системную информацию
Отправлено: qwyllum от Ноябрь 30, 2012, 14:46
при чем тут qtcreator ? Это только IDE. Информацию в винде можно получить через winAPI или через WMI
QT Creator тут при том, что используются библиотеки типа QLibname QString, QLabel и т.п.. Следовательно, логичным было бы предположить, что существует библиотека вроде QSystemInfo, которая и подходит под мои задачи.  Мне нужна программа под Linux, а не под Windows.

Я правильно Вас понял, что в библиотеках Qt Creator нет нужной мне функции?


Название: Re: Как вывести системную информацию
Отправлено: kambala от Ноябрь 30, 2012, 14:52
при чем тут qtcreator ? Это только IDE.
@qwyllum: точно так же, как и visual studio, xcode, eclipse, и т.п. А библиотека называется просто «Qt» (и именно в таком регистре пишется).
Я правильно Вас понял, что в библиотеках Qt Creator нет нужной мне функции?
именно так


Название: Re: Как вывести системную информацию
Отправлено: Пантер от Ноябрь 30, 2012, 14:52
Qt Creator не является библиотекой.
Библиотека Qt не содержит нужного тебе функционала.


Название: Re: Как вывести системную информацию
Отправлено: qwyllum от Ноябрь 30, 2012, 14:57
Qt Creator не является библиотекой.
Библиотека Qt не содержит нужного тебе функционала.
Огромное спасибо, что вовремя исправили) буду задавать вопрос в другом разделе (:


Название: Re: Как вывести системную информацию
Отправлено: kuzulis от Ноябрь 30, 2012, 15:07
Цитировать
Огромное спасибо, что вовремя исправили) буду задавать вопрос в другом разделе (:
Посмотри для Qt это (http://qt.gitorious.org/qt/qtsystems/trees/master), но придется ручками поработать и.. мозгами.  :)


Название: Re: Как вывести системную информацию
Отправлено: qwyllum от Ноябрь 30, 2012, 15:13
Цитировать
Огромное спасибо, что вовремя исправили) буду задавать вопрос в другом разделе (:
Посмотри для Qt это (http://qt.gitorious.org/qt/qtsystems/trees/master), но придется ручками поработать и.. мозгами.  :)

Огромное спасибо, сейчас посмотрю)

У меня еще вопрос по этой теме, чтобы новую не создавать. Я нашел консольный код, который выводит информацию о системе. Когда попробовал его переделать под QT, то ничего не получается - метка не изменяет свой текст на нужный, хотя в консоле printf все выводилось. Подскажите пожалуйста, где моя ошибка:

Код:
#include <QApplication>
#include <QLabel>
#include <QDialog>

#include <sys/utsname.h>
int main(int argc, char *argv[])
{

    QApplication a(argc, argv);
   QDialog *w = new QDialog;
    QLabel *label = new QLabel(w);
    struct utsname buf;
        label->setText((buf.sysname));
         w->show();

    return a.exec();
}

А вот код, который нормально работает:
Код:
#include <sys/utsname.h>
#include <stdio.h>
#include <errno.h>
 
int main()
{
    struct utsname buf;
    if (uname(&buf) == 0)
    {
        printf("OS name: %s\n", buf.sysname);
        printf("OS version: %s\n", buf.version);
        printf("OS release: %s\n", buf.release);
        printf("Arch: %s\n", buf.machine);
    }
    else
    {
        perror("Error");
    }
    return 0;
}


Название: Re: Как вывести системную информацию
Отправлено: kuzulis от Ноябрь 30, 2012, 15:15
Ну а кто будет buf заполнять? Кот Васька?


Название: Re: Как вывести системную информацию
Отправлено: qwyllum от Ноябрь 30, 2012, 15:18
Ну а кто будет buf заполнять? Кот Васька?
;D ;D ;D огромное спасибо. Извините чайника. Все работает.