Как использовать переменные среды Windows в Qt5

Я не знаю о вашей реализации, но предположим, что у вас есть связанный компонент React, в который вы подключаете свой сокет. Вам нужно отправить _ioDispatch (полезную нагрузку), чтобы он достиг redux и redux-thunk (или того, что вы используете) промежуточного программного обеспечения. Что-то вроде этого:

import React from 'react';
import { connect } from 'react-redux';

class MyComponent extends React.component {
    constructor(props) {
        //create socket and do stuff here..
        socket.on('item created', function(payload){
            console.log("socket on item created")
            props.socketCallback(payload);
        });
    }
}

const mapDispatchToProps = (dispatch) => ({
   socketCallback: (payload) => dispatch(_ioDispatch(payload))
});

export default connect(null, mapDispatchToProps)(MyComponent);

И, кстати, если ваша функция _ioDispatch так же описана:

export const _ioDispatch = (data) => (dispatch, getState ) => {
    console.log("_ioDispatch")
    dispatch(data);
}

Тогда вы могли бы просто удалить ее и изменить mapDispatchToProps на:

const mapDispatchToProps = (dispatch) => ({
   socketCallback: (payload) => dispatch(payload)
});
0
задан jbh 19 January 2019 в 14:18
поделиться

2 ответа

string path(getenv("WINDIR"));

поместит% WINDIR% в строку std ::. Я ожидаю, что вы можете сделать то же самое с типами Qt.

Возможно, вам лучше использовать стандартные пути Qt http://doc.qt.io/qt-5/qstandardpaths.html . Возиться с% WINDIR% немного опасно.

0
ответ дан Michael Surette 19 January 2019 в 14:18
поделиться

Qt5 предоставляет несколько функций для извлечения значения, хранящегося в переменной окружения, а именно qgetenv и qEnvironmentVariable .

Как вы, кажется, нацелены на Windows, безопаснее использовать QString qEnvironmentVariable(const char *varName)

QString winDirPath = qEnvironmentVariable("WINDIR");

if (!winDirPath.isNull()) {
    // the environment variable WINDIR exists and has been retrieved
} else {
    // the environment variable does not exists in this system
}
0
ответ дан jbh 19 January 2019 в 14:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: