Настройка приложения Python для взаимодействия с Google таблицами
Созданный в QT Designer дизайн формы в соответствии с инструкциями https://tutorcloud.ru/mod/page/view.php?id=801 импортируем в наш проект.
В приведенном ниже примере приняты следующие имена для виджетов формы:
routePoint - виджет типа LineEdit (ввод текста в одну строку);
sendPoint - виджет типа PushButton (кнопка отправки).
1. Заготовка (проверка работоспособности формы)

2. Устанавливаем в проект библиотеку oauth2client

2. Устанавливаем в проект библиотеку gspread

Подключаем библиотеки к проекту:

Добавляем список области доступа. Первая ссылка позволяет авторизоваться в гугл таблице, вторая указывает точку входа в сервисы Google Drive.

Загружаем учетные данные. Чтобы эта строка выполнилась, необходимо разместить в корне рабочего проекта json-файл ключа. Если вы используете заготовку наставника, то скачать его можно здесь: https://disk.yandex.ru/d/ciLbcnb54auegg

Авторизуемся и создаем клиент

В переменную spreadsheet записываем открытую таблицу

Далее создаем переменную worksheetPoint для взаимодействия с конкретным листом таблицы

Теперь можно проверить, как взаимодействует наше приложение с таблицей

Полный код того, что уже сделано:
import sys # sys нужен для передачи argv в QApplication
from PyQt5 import QtWidgets
import design # Это наш конвертированный файл дизайна
import gspread # Библиотека для взаимодействия с гугл таблицами
from oauth2client.service_account import ServiceAccountCredentials #библиотека для авторизации
# Определяем область доступа
scope = ['https://www.googleapis.com/auth/spreadsheets', 'https://www.googleapis.com/auth/drive']
# Загружаем учетные данные
creds = ServiceAccountCredentials.from_json_keyfile_name('galichroutes-449709-ab64df0863a1.json', scope)
# Авторизуемся и создаем клиент
client = gspread.authorize(creds)
# Открываем таблицу по названию
spreadsheet = client.open('Достопримечательности Галича')
# Открываем первый лист, который имеет номер 0
#worksheetPoint = spreadsheet.get_worksheet(0)
#Либо можно обратиться к листу прямо по его имени
worksheetPoint = spreadsheet.worksheet('Точка маршрута')
class ExampleApp(QtWidgets.QMainWindow, design.Ui_MainWindow):
def __init__(self):
# Это здесь нужно для доступа к переменным, методам
# и т.д. в файле design.py
super().__init__()
self.setupUi(self) # Это нужно для инициализации нашего дизайна
(self.sendPoint.clicked.connect(self.printer))
def printer(self):
(self.routePoint.setText("Сработало!!!"))
# Записываем данные в ячейку A1
worksheetPoint.update_acell('A2', 'Hello, World!')
def main():
app = QtWidgets.QApplication(sys.argv) # Новый экземпляр QApplication
window = ExampleApp() # Создаём объект класса ExampleApp
window.show() # Показываем окно
app.exec_() # и запускаем приложение
if __name__ == '__main__': # Если мы запускаем файл напрямую, а не импортируем
main() # то запускаем функцию main()
Запустим приложение и нажмем на кнопку. В таблице, созданной наставником, по адресу: https://docs.google.com/spreadsheets/d/1Vfs3c6o8FeoMnhuuaQKGvS1WDstlTz_Mm-kbC_jrOV0/edit?usp=sharing в ячейке A2 должна появиться фраза «Hello, World!».
Если все получилось, поздравляю! Можно теперь работать с таблицей дальше.